【发布时间】:2019-10-27 15:48:12
【问题描述】:
我有下表:
Id | OrderNO | QTY | Station | DateSt | DateEd | Status | CreatedDt
1 | 200 | 30 | ABC | 10/19/2019 1:00pm | NULL | NULL | 10/19/2019 1:00pm
2 | 200 | 30 | ABC | NULL | NULL | NULL | 10/19/2019 2:00pm
3 | 200 | 0 | ABC | NULL | 10/19/2019 3:00pm | End | 10/19/2019 3:00pm
我想要做的是获取一个查询以显示 Qty 列的总和,并且仅显示具有初始日期和结束日期的行。像这样的:
OrderNO | QTY | Station | DateSt | DateEd | Status | CreatedDt
200 | 60 | ABC | 10/19/2019 1:00pm | NULL | NULL | 10/19/2019 1:00pm
200 | 0 | ABC | NULL | 10/19/2019 3:00pm | End | 10/19/2019 3:00pm
目前,我有查询来按预期显示结果,但我没有使用 Dates 列,如果我添加这些列,查询显示的行数比我想要的多。这是我的查询:
SELECT OrderNO, SUM(QTY), Station, Status
FROM TableName WHERE Status IS NULL
GROUP BY OrderNO, Station, Status
UNION ALL
SELECT OrderNO, QTY, Station, Status
FROM TableName WHERE Status='End'
GROUP BY OrderNO, Station, Status
钯。包含 Status='End' 的行将始终具有 Qty = 0 和 DateEd 日期时间。在我的表中插入的第一行必须包含 DateSt 日期时间。
如何添加这些日期时间列以保持最终结果符合我的预期?
【问题讨论】:
标签: sql sql-server tsql