[SQL ] 請問這個選擇語法

看板Database作者 (Mein Gott!!)時間17年前 (2008/10/21 13:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
假設有table資料如下 tb1 --------------------------------------------------- 帳號 訂購編號 日期 --------------------------------------------------- User Item OrderDate --------------------------------------------------- User1 Item0 2008-10-10 10:00:00 User1 Item1 2008-10-10 10:00:00 User2 Item0 2008-10-10 10:00:00 User2 Item0 2008-10-10 10:00:00 User2 Item1 2008-10-10 10:00:00 User3 Item1 2008-10-10 10:00:00 User3 Item2 2008-10-10 10:00:00 User4 Item3 2008-10-10 10:00:00 User5 Item0 2008-10-10 10:00:00 User5 Item0 2008-10-10 10:00:00 User5 Item1 2008-10-10 10:00:00 要怎麼產生各個User對應的Item數目報表,想要統計各個User訂購的項目 Item0 Item1 Item2 Item3 User1 1 1 User2 2 1 User3 1 1 User4 1 User5 2 1 請問語法該怎麼下,使用MS-SQL 如果使用 Select User, count(item) from tb1 只能獲得該使用者全部的訂購數 該如何產生各個項目的統計呢 剛剛試了一下 select User, sum(i0) as count_i0, sum(i1) as count_i1, sum(i2) as count_i2, sum(i3) as count_i3 from ( select User, case Item when 0 then count(Item) else 0 end as i0, case Item when 1 then count(Item) else 0 end as i1, case Item when 2 then count(Item) else 0 end as i2, case Item when 3 then count(Item) else 0 end as i3, from tb1 group by User ) as list_1 group by User 可以產生想要的結果,不過語法似乎不夠簡潔,效能可能也有問題 想請問是否有更好的作法 謝謝 ※ 編輯: vizshala 來自: 59.124.66.91 (10/21 14:33)
文章代碼(AID): #18_MBA45 (Database)
文章代碼(AID): #18_MBA45 (Database)