作者vizshala (Mein Gott!!)
看板Database
标题[SQL ] 请问这个选择语法
时间Tue Oct 21 13:04:07 2008
假设有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)