SQL能判斷重複資料只顯示最新日期的data嗎?

本帖最後由 tn00386 於 2015-10-20 10:28 編輯

小弟在學習使用Openoffice Base做資料庫在查詢功能於上問題:

例:
  1. Code id       Price         Date
  2. Q048            $498        10/08/2015
  3. Q102            $1588      10/08/2015
  4. T341             $55           09/08/2015
  5. Q048            $488         20/10/2015
複製代碼
想請問有無師兄知道能否做到以下的功能嗎?

如果"Code id"相同,能自動顯示最新日期的價錢嗎?

希望最後輸出:
  1. Code id       Price         Date
  2. Q102            $1588      10/08/2015
  3. T341             $55           09/08/2015
  4. Q048            $488         20/10/2015
複製代碼

select a.* from table a, (select codeid, MAX(date) as date from table group by codeid) b where a.codeid = b.codeid and a.date = b.date

TOP

SELECT max(Date),Price,Code_ID from THISTABLE group by Code_ID

TOP

本帖最後由 gakko 於 2015-10-20 12:40 編輯

Where code=id Order by 日期 limit 1

TOP

SELECT max(Date),Price,Code_ID from THISTABLE group by Code_ID
twaiho2003 發表於 2015-10-20 11:27


效率呢個比較好

TOP

效率呢個比較好
max918 發表於 2015-10-21 12:23


但個price可能係錯嘅

TOP

但個price可能係錯嘅
masseffect 發表於 2015-10-21 13:12

所以話寫SQL真係一門藝術.. :D

TOP

唔知openoffice base可唔可以咁寫.. 不過mysql就可以
  1. SELECT b.* FROM (SELECT code_id, max(date) date from tablename group by code_id ) a INNER JOIN tablename b USING (code_id, date);
複製代碼

TOP

回覆 6# masseffect

點解有可能係錯既?

TOP

咁寫應該唔得

效率呢個比較好
max918 發表於 2015-10-21 12:23

TOP