看板 Database 關於我們 聯絡資訊
select ID,sum(unit * quantity) as count, case min( case status when 'Fail' then 1 when 'Pending' then 2 when 'OK' then 3 end ) when 1 then 'Fail' when 2 then 'Pending' when 3 then 'OK' end as status from table group by ID ※ 引述《DRLai (蘇打)》之銘言: : 資料庫名稱:MariaDB : 資料庫版本:10 : 內容/問題描述: : 資料大致如下 : ID unit quantity status : -------------------------------------- : A 10 10 OK : A 10 20 Pending : A 20 10 OK : B 10 10 OK : B 10 10 Fail : C 10 10 OK : C 10 10 OK : C 10 10 OK : 想要做的是用 GROUP BY ID,將同 ID 的彙整 : 同時進行數量加總 : 前述部分語法沒問題,主要是 Status 欄位 : 目前的語法 : SELECT ID, SUM(unit*quantity) as count, status FROM table GROUP BY ID : 發現 Status 欄位顯示是先搶先贏 : 而我想要呈現的方式是 Fail > Pending > OK : 即 相同 ID 中有一個status 為 Fail 則顯示 Fail : 要如何撰寫呢? : 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.34.27 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1513655899.A.F59.html
criky: 推一個 12/19 13:50
DRLai: 原來可以這樣寫,感謝 m(_ _)m 12/19 21:31