【发布时间】:2015-04-04 19:31:31
【问题描述】:
非常卡在我试图运行的某个查询上。
这是表结构 -
+--------+----------+--------+
| caseID | status | update |
+--------+----------+--------+
1 New 3-4-2013
1 Open 3-5-2013
2 New 3-5-2013
3 Closed 3-5-2013
我希望我的查询返回最近的行,然后只显示 status = 'New' 的行,即在示例数据中只应该返回行 caseID = 2。
我有这个问题
SELECT * FROM (SELECT * FROM table ORDER BY update DESC) AS foo GROUP BY caseID
该查询返回每个 caseID 的最新行。现在,我对仅显示 where status = 'New' 的部分感到震惊。
我试过了,得到 #1064 SQL 错误
`SELECT * FROM (SELECT * FROM table ORDER BY update DESC) AS foo GROUP BY caseID WHERE status = 'New'
我试过了,它会返回所有 status='New' 的行,即使它们不是最新的。这不是我想要的。
SELECT * FROM (SELECT * FROM table ORDER BY update DESC) AS foo WHERE status = 'New' GROUP BY caseID
提前感谢您的帮助。
【问题讨论】:
-
请用您正在使用的特定 RDBMS 标记您的问题。
-
select caseId, status, max('update') as 'update' from table where status = 'New'