求一条行列转换的sql语句
需要用到两张表
表a
id aname
1 文具
2 书包
3 尺子
表b
id briqi bname
1 20130701 文具
2 20130701 文具
3 20130701 书包
4 20130702 文具
需要取某个时间段内每天的各种类销售量
也就是需要得到如下结果
日期 文具 书包 尺子 合计
20130701 2 1 0 3
20130702 1 0 0 1
单个表的我会做行列转换,但那样就没有尺子列了,
我想要种类的全集 该如何做呢?
[解决办法]
这个是我刚写的一个,也是别人昨天的问题,满足你的2个表
declare @strsql varchar(1000)
set @strsql='select a.GroupName '
select @strsql=@strsql+',sum(case convert(char(10),inputtime,120) when '''+b.inputtime+''' then isnull(GroupCount,0) else 0 end)['+b.inputtime+']'
from (select distinct(convert(char(10),inputtime,120)) as inputtime from t2 ) b
set @strsql=@strsql+' from t1 as a,t2 as c where a.GroupId=c.GroupId Group by a.GroupName '
print(@strsql)
exec(@strsql)