Re: [SQL ] 資料日期取最小值的問題

看板Database作者 (下雨天...)時間16年前 (2009/10/20 15:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《bobju (寶貝豬)》之銘言: : ※ 引述《icefanatic (下雨天...)》之銘言: : : 請問板上高手~ : : 我使用的是access : : 假設table有c_id,product,s_date : : 想要找出此客戶買某產品的最小日期(客戶與產品會重覆) : : 我的query是SELECT sale.c_id,sale.product,test.s_date : : FROM sale INNER JOIN (SELECT c_id,MIN(s_date) FROM sale : : GROUP BY c_id) AS test : : on sale.c_id=test.c_id AND sale.s_date=test.s_date; : : 濾出的data會有遺漏的現象,例:查詢過後某些客戶或是產品會不見? : : 請問是哪裡有問題呢? : : 謝謝! : 舉例來看: : sale: id c_id product s_date : 1 1 'pa' '2009-10-10 20:00:00' : 2 1 'pb' '2009-10-11 21:00:00' : 3 1 'pc' '2009-10-12 22:00:00' : 那麼照上述sql的邏輯來看, 只會撈出 : 1,'pa','2009-10-10 20:00:00' , 而不會撈出 : 1,'pb','2009-10-11 21:00:00' 以及 : 1,'pc','2009-10-12 22:00:00' , : 所謂data遺漏是指這種情形? 若要data不會遺漏, 那麼 : 應該是 GROUP BY c_id,product 才是. : 不知有沒有會錯意? 感謝B大~ SELECT sale.c_id, sale.product, test.min_s_date FROM sale INNER JOIN (SELECT c_id,product, MIN(s_date) AS min_s_date ^^^^^^^ FROM sale GROUP BY c_id,product) AS test ^^^^^^^ on (sale.c_id=test.c_id) AND (sale.s_date=test.min_s_date) AND(sale.product=test.product); ^^^^^^^^^^^^^^^^^^^^^^^^^ query改成這樣,結果正是我要的~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.49.67

10/20 16:58, , 1F
good luck ;)
10/20 16:58, 1F
文章代碼(AID): #1AtM8d1U (Database)
文章代碼(AID): #1AtM8d1U (Database)