查看完整版本: SQL語法的問題
頁: [1]

ggnnyy 發表於 2016-1-8 04:53 PM

SQL語法的問題

各位大大好:
假設有一個Table,銷貨單(商品,銷貨日期,銷貨數量)
我下一個指令  select 商品,銷貨日期,sum(銷貨數量) from 銷貨單 group by 商品,銷貨日期
會得出例如下:
商品A, 20150101, 150   
商品A, 20150103, 250   
商品B, 20150102, 15   
商品B, 20150103, 1500   

但是如果我是希望輸出為:
           20150101    20150102    20150103
商品A        150               0               250
商品B          0                15             1500

P.S 行與列互換也沒關係

那我該怎麼做呢?  抱歉,我連這個需求可以上網尋找的Query怎麼下都不知道...
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

w12463 發表於 2016-2-4 07:28 PM

給你個思路
某日商品A的金額=sum(case when 銷貨日期= 某日 and 商品=商品A then 金額 else 0 end)
依此類推就能展開一個月的情形

8vpp8vpp 發表於 2016-2-9 09:53 PM

你可以使用PIVOT這個語法。 列轉行
先用你原本的語法再搭上PIVOT就可以解決了
變成列是日期,欄是商品

可以GOOGLE SQL 列轉行就有很多範例了

switchshi 發表於 2016-2-20 11:30 PM

不知道你的資料庫是哪種?因為有些SQL語法只在特定資料庫才能跑
除非你的資料庫以後都不會換或跨不同資料庫系統,
建議將SELECT出的結果再用程式做出像你這樣的需求會比較好.

ggnnyy 發表於 2016-2-21 11:23 PM

8vpp8vpp 發表於 2016-2-9 09:53 PM static/image/common/back.gif
你可以使用PIVOT這個語法。 列轉行
先用你原本的語法再搭上PIVOT就可以解決了
變成列是日期,欄是商品


感謝8vpp8vpp大大:
已查詢到了,這就是我的需求,感謝分享^^<br><br><br><br><br><div></div>

ggnnyy 發表於 2016-2-21 11:23 PM

8vpp8vpp 發表於 2016-2-9 09:53 PM static/image/common/back.gif
你可以使用PIVOT這個語法。 列轉行
先用你原本的語法再搭上PIVOT就可以解決了
變成列是日期,欄是商品


感謝8vpp8vpp大大:
已查詢到了,這就是我的需求,感謝分享^^
頁: [1]