| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1054 人关注过本帖
标题:SqlServer2005交叉表查询问题
只看楼主 加入收藏
zt2068
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2008-4-28
收藏
 问题点数:0 回复次数:4 
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、现金、刷卡等的数据全部为空。这个百思不得其解

望各位大神指教

搜索更多相关主题的帖子: 团购 
2015-01-19 14:35
zt2068
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2008-4-28
收藏
得分:0 
有人指教吗?
2015-01-19 15:18
zt2068
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2008-4-28
收藏
得分:0 
版主帮忙看看吧
2015-01-19 21:52
zt2068
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2008-4-28
收藏
得分:0 
没有人帮忙啊
2015-01-20 09:57
Davisliao
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-1-29
收藏
得分:0 
正在学习中
2015-01-29 09:51
快速回复:SqlServer2005交叉表查询问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054256 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved