Re: [SQL ] 請問怎麼找出每個ID的最前兩個日期的資料

看板Database作者 (Jason1122)時間13年前 (2011/08/11 21:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
試試看這個吧 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)
文章代碼(AID): #1EGzcUWY (Database)
文章代碼(AID): #1EGzcUWY (Database)