我在SQL Server中有一张表,格式如下(请注意ID字段不唯一):
-----------------------------------
| ID | IsAdamBrown | DateComplete |
| 1 | TRUE | 2017-01-01 |
| 1 | TRUE | 2017-01-03 |
-----------------------------------
我希望选择表中所有唯一ID的一行,以及该ID的最近'DateComplete'。
在这种情况下,我的期望输出是:
-----------------------------------
| ID | IsAdamBrown | DateComplete |
| 1 | TRUE | 2017-01-03 |
-----------------------------------
我已经尝试过:
SELECT DISTINCT DateComplete, ID, IsAdamBrown
FROM thisTable
WHERE IsAdamBrown IS NOT NULL
GROUP BY DateComplete, ID, IsAdamBrown
ORDER BY DateComplete DESC
不幸的是,我仍然会返回两个日期行。在MySQL中,我只会按前两行分组,ORDER BY
会确保 DateComplete 是最近的。SQL服务器要求 SELECT
字段与 GROUP BY
匹配,这使得这种情况不可能。
如何获取每个 ID 的单个行,并且该行具有最新的 DateComplete?
Max(DateComplete)
。对于后者,我不确定您提供的表中是否有足够的信息来获取它。 - Obsidian Phoenix