【发布时间】:2019-08-03 16:09:53
【问题描述】:
我目前正在处理一个查询,我需要根据创建的最新日期来区分 ID。
这是我的图表
| ID | ModelID | LocationId | DateCreated |
|------+----------------+-----------------+---------------|
| 1 | 1 | 5 | 02/03/2019 |
| 2 | 2 | null | 01/14/2019 |
| 3 | 2 | 0 | 02/03/2019 |
| 4 | 2 | 5 | 12/30/2018 |
| 5 | 4 | 3 | 01/10/2019 |
| 6 | 3 | 5 | 02/14/2019 |
| 7 | 2 | 5 | 03/13/2019 |
所以我的目标是区分ModelId,但仍然显示LocationId is null or equals to 0,如果LocationId 仍然相同,获取最新的DateCreated 并将其显示到列表中
期望的输出:
| ID | ModelID | LocationId | DateCreated |
+------+----------------+-----------------+---------------+
| 1 | 1 | 5 | 02/03/2019 |
| 2 | 2 | null | 01/14/2019 |<-still show
| 3 | 2 | 0 | 02/03/2019 |<-still show
| 4 | 2 | 5 | 03/13/2019 |<-The Latest
| 5 | 4 | 3 | 01/10/2019 |
| 6 | 3 | 5 | 02/14/2019 |
这是我当前的 SQL 查询:
SELECT
a.ModelID, a.LocationId,
(SELECT TOP 1
CONVERT(NVARCHAR, DateCreated, 101)
FROM
db.DeliveryDates
WHERE
isDeleted = 0
AND DeliveryId = a.DeliveryId) AS DateCreated,
FROM
db.DeliveryCarInfo a
WHERE
a.isDeleted = 0
【问题讨论】:
标签: sql sql-server sql-server-2008 select distinct