作者Jason1122 (Jason1122)
看板Database
标题Re: [SQL ] 请问怎麽找出每个ID的最前两个日期的资料
时间Thu Aug 11 21:31:07 2011
试试看这个吧
SELECT [ID]
,[Order_Date]
FROM [Table] AS A
WHERE [Order_Date] <=
(SELECT MAX([Order_Date]) FROM Table AS B
WHERE A.ID = B.ID
AND A.[Order_Date]>=B.[Order_Date]
HAVING Count(*) <= 2)
ORDER BY ID, Order_Date
我是看到书中有类似的例子,改一下
但我觉得子查询不好懂,不太会解释...
书也写不清楚,但测了一下是可以的。
※ 引述《sanwind (疾风迅雷)》之铭言:
资料库:SQL Server 2008
假设现有资料表资料 如下:
栏位 ID Order_Date
内容 A 03/03
B 06/05
C 10/11
A 03/03
B 05/04
C 12/13
A 05/05
B 07/06
C 09/10
如果我现在想要SELECT出每个ID最前第一个和第二个Order_Date的话
,请问我该如何去下这个指令?
(PS.而且有可能出现重复日期 比如 A 最前第一个和第二个都是03/03)
我只知道,如果我要找出每个ID第一个Order_Date的话
可以这样下指令
SELECT ID,MIN(Order_Date) AS Order_Date FROM TABLE
GROUP BY ID
ORDER BY ID
这样可以得出每个ID的第一个Order_Date
栏位 ID Order_Date
A 03/03
B 05/04
C 09/10
但是要找出每个ID的第二个Order_Date的话就不知道怎麽去下指令了
请问有版友可以协助一下吗?
感谢不尽 m(_ _)m
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.238.219.26
※ 编辑: Jason1122 来自: 219.238.219.26 (08/11 21:34)