SQL中case的使用

發票表:  
  id            金額         日期              類型      
  1             500          2005-1-1          增值稅發票
  2             600          2005-7-9          增值稅發票
  3             300          2005-2-3          普通發票
  4             1000         2005-7-2          普通發票
  5             200          2005-6-6          地稅發票
想按發票類型轉爲列,得到結果集:
  id         日期        增值稅發票金額      普通發票金額    地稅發票金額
  1         2005-1-1        500                    0              0
  2         2005-7-9        600                    0              0
  3         2005-2-3         0                    300             0
  4         2005-7-2         0                    1000            0
  5         2005-6-6         0                     0             600

另外,還需要一條查詢語句來彙總每種類型的金額總數
增值稅發票金額1100,普通發票金額1300, 地稅發票金額 600    

--------------------------------------------------------------------------------------------
select
    id,
    日期,
    (case 類型 when '增值稅發票' then 金額 else 0 end) as 增值稅發票金額,
    (case 類型 when '普通發票'   then 金額 else 0 end) as 普通發票金額,
    (case 類型 when '地稅發票'   then 金額 else 0 end) as 地稅發票金額
from
    發票表
compute sum(增值稅發票金額),sum(普通發票金額),sum(地稅發票金額)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章