最近更新: 2006-01-26

SQL~~ 使用 CASE 修飾資料內容,以便進行 group 操作

出貨單表格 sale_orders (saleno: 出貨單號, cno: 客戶單號, sale_date: 出貨日期, amt: 訂購總金額)。有 M, PH, YA 三處通路,來自 M 通路的客戶訂單,單號為 'M' 開頭,餘類推。欲查詢 2006 年一月份,三處通路的客戶訂單總金額。

使用 CASE 修飾單號,將 M 開頭單號者,顯示為 'M通路' ,餘類推。如此便可再以 GROUP 進行群組求總和的操作。

select sale_stat.place, sum(sale_stat.amt) as tamt
from (select saleno,
        case
            when cno like 'M%' then 'M通路'
            when cno like 'PH%' then 'PH通路'
            when cno like 'YA%' then 'YA通路'
        end as place,
        amt
    from sale_orders
    where (cno like 'M%'  or cno like 'PH%' or cno like 'YA%')
    and sale_date >= '20060101' and sale_date <= '20060131' )
as sale_stat
group by sale_stat.place
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/1051724.html