[SQL ] 請問如何選取最小值

看板Database作者 (扁Q)時間14年前 (2011/12/15 01:42), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
TF001 = 單別 TF002 = 單號 TF003 = 訂單項次序號 TF004 = 版次 TF005 = 訂單日期 利用 TF001 & TF002 & TF003 決定的情況下,可能會有多個版次 . 即 TF004 可能為 MULTI VALUE, 而由於可給使用者查詢訂單日期範圍, 例 : TF005 > 2011/11/01 AND TF005 < 2011/11/10 會挑選多筆在日期內的訂單資料,而我又必須只挑選同一筆單別.單號.項次序號 下版次為最小的版次 . 可能情況是 TF001 | TF002 | TF003 | TF004 | TF005 1101 1101001 0001 0002 2011/11/05 1101 1101001 0001 0003 2011/11/05 1101 1101002 0002 0003 2011/11/08 1101 1101003 0003 0001 2011/11/09 需剔除 第二筆資料, 因為存在兩個版次, 我試著 1 SELECT TF001,TF002,TF003,TF005,MIN(TF004) 2 FROM COPTF 3 GROUP BY TF001,TF002,TF003,TF005 可以得到正確的答案如下 TF001 | TF002 | TF003 | TF004 | TF005 1101 1101001 0001 0002 2011/11/05 1101 1101002 0002 0003 2011/11/08 1101 1101003 0003 0001 2011/11/09 然而因為表格還要查詢其他的欄位 TF006 = 訂單預交日 TF001 | TF002 | TF003 | TF004 | TF005 | TF006 1101 1101001 0001 0002 2011/11/05 2011/11/17 1101 1101001 0001 0003 2011/11/05 2011/11/14 1101 1101002 0002 0003 2011/11/08 1101 1101003 0003 0001 2011/11/09 這邊的意思是 再版次中修改了 訂單預交日的日期,而其他值不變,空值代表著不修改 在這個情況下,我做了下面查詢 1 SELECT TF001,TF002,TF003,TF005,TF006 ,MIN(TF004) 2 FROM COPTF 3 GROUP BY TF001,TF002,TF003,TF005 , TF006 得到下面結果 TF001 | TF002 | TF003 | TF004 | TF005 | TF006 1101 1101001 0001 0002 2011/11/05 2011/11/17 1101 1101001 0001 0003 2011/11/05 2011/11/14 1101 1101002 0002 0003 2011/11/08 1101 1101003 0003 0001 2011/11/09 並沒有辦法得到想要結果 又做了下面查詢 1 SELECT TF001,TF002,TF003,TF005,MIN(TF006) ,MIN(TF004) 2 FROM COPTF 3 GROUP BY TF001,TF002,TF003,TF005 得到 TF001 | TF002 | TF003 | TF004 | TF005 | TF006 1101 1101001 0001 0002 2011/11/05 2011/11/14 1101 1101002 0002 0003 2011/11/08 1101 1101003 0003 0001 2011/11/09 他將兩筆資料的值做比較而選取了第三版的TF006= 2011/11/14,並不?選擇第二版的 2011/11/17,出現了判斷錯誤, 想請問有哪種寫法可以得到正確的值嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.64.222

12/15 07:10, , 1F
DBMS?
12/15 07:10, 1F
文章代碼(AID): #1EwD_xqG (Database)