Re: [SQL ] 請問怎麼找出每個ID的最前兩個日期的資料
試試看這個吧
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)
討論串 (同標題文章)