SqlServer2005交叉表查询问题
表数据营业区编号 营业区 营业日 付款编号 付款名称 付款数量 付款金额
6 1店 12/14/2014 12:00:00 AM 001 现金 37 30000
6 1店 12/14/2014 12:00:00 AM 002 刷卡 28 58370
6 1店 12/14/2014 12:00:00 AM 003 团购 16 3900
6 1店 12/14/2014 12:00:00 AM 012 团购 21 4951
7 7店 12/14/2014 12:00:00 AM 010 团购 1 28888
7 7店 12/14/2014 12:00:00 AM 012 团购 2 400
7 7店 12/14/2014 12:00:00 AM 001 现金 136 16438
7 7店 12/14/2014 12:00:00 AM 002 刷卡 90 18537
7 7店 12/14/2014 12:00:00 AM 003 团购 74 15200
7 7店 12/14/2014 12:00:00 AM 005 免单 1 284
11 11店 12/14/2014 12:00:00 AM 001 现金 71 9026
11 11店 12/14/2014 12:00:00 AM 002 刷卡 17 3538
11 11店 12/14/2014 12:00:00 AM 003 团购 17 3700
11 11店 12/14/2014 12:00:00 AM 005 免单 2 2678
12 12店 12/14/2014 12:00:00 AM 001 现金 83 8736
12 12店 12/14/2014 12:00:00 AM 002 刷卡 65 13744
12 12店 12/14/2014 12:00:00 AM 003 团购 37 6600
13 13店 12/14/2014 12:00:00 AM 001 现金 75 9631
13 13店 12/14/2014 12:00:00 AM 002 刷卡 40 8443
13 13店 12/14/2014 12:00:00 AM 003 团购 22 4500
14 15店 12/14/2014 12:00:00 AM 001 现金 111 10853
字段设置
营业区编号 int
营业区 nvarchar(50)
营业日 datetime
付款编号 varchar(2)
付款名称 nvarchar(20)
付款数量 int
付款金额 money
现在要交叉表查询
DECLARE @str as nVARCHAR(max)
set @str='yyq,'
select @str=@str+''''+fkmc+''''+'=sum(case fkmc when
'+''''+fkmc+''''+' then fk else null end),'
from hb group by fkmc
set @str='select '+substring(@str,1,len(@str)-1)+',sum(fk)
hj from hb group by yyq'
print(@str)
exec(@str)
备注:
yyp 营业区
yyr 营业日
fkbh 付款编号
fkmc 付款名称
fksl 付款数量
fk 付款金额
查询结果如下
yyp 现金 刷卡 团购 免单 hj
1店 NULL NULL NULL NULL 25057
7店 NULL NULL NULL NULL 16719
11店 NULL NULL NULL NULL 23960.22
12店 NULL NULL NULL NULL 19834.84
13店 NULL NULL NULL NULL 30772
15店 NULL NULL NULL NULL 46838
问题出来了
1、合计标题不可以为中文(否则报错),用英文可以
2、现金、刷卡等的数据全部为空。这个百思不得其解
望各位大神指教