首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条队列转换的sql语句

2013-08-01 
求一条行列转换的sql语句需要用到两张表表aid aname1文具2书包3尺子表bidbriqibname120130701文具22013070

求一条行列转换的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)
 

热点排行