欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于sql交叉表的有关问题,哎,不熟练,没办法,又得了

更新时间: 2014-01-05 02:18:00 责任编辑: Author_N1

 

关于SQL交叉表的问题,哎,不熟练,没办法,又得求助了。
表结构如下:
月份     部门代码    项目            金额
1 11001 科室总收入 242409.20
2 11001 科室总收入 303011.50
3 11001 科室总收入 404015.33
4 11001 科室总收入 606023.00
5 11001 科室总收入 1212046.00
5 11002 科室总收入 1356.00
5 13012 科室总收入 .00
6 11009 科室总收入 855530.00
6 11034 科室总收入 7216558.00
6 11001 科室总收入 1120644.00
6 11002 科室总收入 1217642.00
6 12004 科室总收入 331214.00
6 11003 科室总收入 991837.00
6 11005 科室总收入 630345.00
6 11006 科室总收入 1055543.00
6 11007 科室总收入 576242.00
6 11014 科室总收入 847614.00
6 11019 科室总收入 2429983.00
6 11023 科室总收入 90982.00
6 11044 科室总收入 .00
6 11027 科室总收入 1400943.00
6 20001 科室总收入 .00
6 11041 科室总收入 .00
6 12001 科室总收入 5163468.00
6 12002 科室总收入 696983.00
6 11015 科室总收入 1534202.00
6 11018 科室总收入 438646.00
6 12005 科室总收入 749946.00
6 11026 科室总收入 525745.00
6 12006 科室总收入 143015.00
6 11010 科室总收入 927181.00
6 11013 科室总收入 800345.00
6 11017 科室总收入 1048420.00
6 11020 科室总收入 562862.00
6 11021 科室总收入 720996.00
6 12007 科室总收入 2501509.00
6 11022 科室总收入 333093.00
6 12008 科室总收入 636149.00
6 12003 科室总收入 2193790.00
6 11008 科室总收入 1186605.00
6 11029 科室总收入 700253.00
6 11004 科室总收入 4775020.00
6 11012 科室总收入 600469.00
6 11028 科室总收入 12567251.00
6 11035 科室总收入 580154.00
6 11016 科室总收入 811066.00
6 20002 科室总收入 .00
6 11030 科室总收入 493913.00
6 11011 科室总收入 938374.00
6 11043 科室总收入 .00
6 11025 科室总收入 58526.00
6 11036 科室总收入 260956.00
6 11031 科室总收入 198927.00
6 11024 科室总收入 10941.00
6 11040 科室总收入 188332.00
6 11032 科室总收入 172253.00
6 11039 科室总收入 255019.00
7 11009 科室总收入 1020969.00
7 11006 科室总收入 993231.00
7 12002 科室总收入 796202.00
7 11039 科室总收入 .00
7 11001 科室总收入 1138680.00
7 11019 科室总收入 2371643.00
7 11010 科室总收入 1008627.00
7 11012 科室总收入 977162.00
10 11016 科室总收入 817317.00
10 11001 科室总收入 1080634.00
10 12007 科室总收入 3074318.00
10 11007 科室总收入 718499.00
10 12005 科室总收入 867229.00
10 12008 科室总收入 545411.00
10 11024 科室总收入 9387.00
10 11015 科室总收入 2175253.00
10 11012 科室总收入 721967.00
10 11027 科室总收入 1660378.00
10 12003 科室总收入 2225105.00
10 20002 科室总收入 .00
10 11099 科室总收入 42698.00
10 11005 科室总收入 650769.00
10 11009 科室总收入 1156720.00
10 11011 科室总收入 1081833.00
10 11042 科室总收入 172124.00
10 11031 科室总收入 327077.00
10 11025 科室总收入 87863.00
10 11026 科室总收入 460845.00
10 11035 科室总收入 668370.00
10 11006 科室总收入 1181717.00
10 11021 科室总收入 1024599.00
10 11033 科室总收入 151274.00
10 11020 科室总收入 607292.00
10 11029 科室总收入 872371.00
10 11030 科室总收入 733362.00
10 11018 科室总收入 374863.00
10 11014 科室总收入 916116.00
10 12004 科室总收入 489522.00
10 12006 科室总收入 194965.00
10 11039 科室总收入 169388.00
10 11002 科室总收入 1409396.00
10 11013 科室总收入 798590.00
10 11003 科室总收入 1435611.00
10 11017 科室总收入 750258.00
10 12001 科室总收入 4531785.00
10 12002 科室总收入 877277.00
10 11023 科室总收入 96452.00
10 11008 科室总收入 1324187.00
10 11004 科室总收入 3638173.00
10 11036 科室总收入 320405.00
10 11022 科室总收入 347480.00
10 11019 科室总收入 3100130.00
10 11010 科室总收入 949472.00

月份是int格式的字段

现在想得到下面的结果
部门             1      2       3       4      5     6    7    8    10
11001    242409.20 303011.50
11002
....

月份的排序要按上面。用下面的语句写时,会报错:
服务器: 消息 245,级别 16,状态 1,行 5
将 varchar 值 ''  then ItemValue else 0 end) [' 转换为数据类型为 int 的列时发生语法错误。
不知道怎么解决?求教了

declare @sql varchar(8000)

set @sql = 'select Dept as ' + '部门'

select @sql = @sql + ' , Sum(case Term when '''+Term+'''  then ItemValue else 0 end) ['+ Term +'] '

from (select distinct Term from [2013BonusCalc]) as a

set @sql = @sql + ' from [2013BonusCalc]  group by dept'

exec(@sql)

--参考方法--
引用:
我原来是把月份改为nvarchar格式,结果能出来,但排序后变成:
10  11  12  1 2 3 4 5 6 7 8 9
这样了。


进行排序呢:

declare @sql varchar(8000)

set @sql = 'select Dept as ' + '部门'
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:18:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8214/
本文WWW.DOC100.NET DOC100.NET版权所有。