我有这个sql语句:
SELECT TOP (5) PartNumber,SerialNumber,MIN(WIP_CompletionDate) as dates
FROM dbo.FG_FILLIN where
Status='FG-FRESH'
and WIP_Status<>'CMPL01'
and PartNumber='P02-070161-10211-C100'
GROUP BY PartNumber,WIP_CompletionDate,SerialNumber
结果:
PartNumber SerialNumber dates
P02-070161-10211-C100 21524100046CA8001806 2010-08-08 06:59:23.183
P02-070161-10211-C100 21524100046CA8001807 2010-08-07 16:26:19.477
P02-070161-10211-C100 21524100046CA8001808 2010-08-07 16:30:20.990
P02-070161-10211-C100 21524100046CA8001810 2010-08-14 13:12:58.827
P02-070161-10211-C100 21524100046CA8001811 2010-08-09 06:58:01.263
现在如果我选择top(2)这是我的结果。
P02-070161-10211-C100 21524100046CA8001806 2010-08-08 06:59:23.183
P02-070161-10211-C100 21524100046CA8001807 2010-08-07 16:26:19.477
但是应该是我的结果将是这样的。
P02-070161-10211-C100 21524100046CA8001808 2010-08-07 16:26:19.477
P02-070161-10211-C100 21524100046CA8001808 2010-08-07 16:30:20.990
有什么建议吗?谢谢你的问候
答案 0 :(得分:3)
尝试将“ORDER BY WIP_CompletionDate ASC”添加到您的查询中,如下所示:
SELECT TOP (5) PartNumber,SerialNumber, WIP_CompletionDate
FROM dbo.FG_FILLIN
WHERE Status='FG-FRESH' AND WIP_Status<>'CMPL01' AND PartNumber='P02-070161-10211-C100'
GROUP BY PartNumber, WIP_CompletionDate, SerialNumber
ORDER BY WIP_CompletionDate ASC;
答案 1 :(得分:1)
在查询末尾添加ORDER BY WIP_CompletionDate ASC
子句。它将按日期排序查询,并选择前两个,因此是最早的。
答案 2 :(得分:1)
其他答案几乎是正确的,确切的方式是:
SELECT TOP (5) PartNumber,SerialNumber,MIN(WIP_CompletionDate) as dates
FROM dbo.FG_FILLIN
WHERE Status='FG-FRESH' and WIP_Status<>'CMPL01' and PartNumber='P02-070161-10211-C100'
GROUP BY PartNumber,WIP_CompletionDate,SerialNumber
ORDER BY dates
所以ORDER BY 日期,并且无需明确指定它是升序。
答案 3 :(得分:0)
按日期使用订单Asc和您的查询,