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

一个交叉表的有关问题

2012-01-29 
一个交叉表的问题,科目代码科目名称部门计划数实际数0007.034其他供应公司.00000000004500.00000000000007

一个交叉表的问题,
科目代码     科目名称   部门           计划数                       实际数
0007.034其他供应公司.00000000004500.0000000000
0007.016折旧费汽运公司.000000000036492.2800000000
0007.018水电费汽运公司.00000000003989.6800000000
0007.004职工教育经费小包装车间.00000000006000.0000000000
0007.010排污费(含赔偿)小包装车间.000000000024000.0000000000
0007.012差旅费小包装车间.000000000016540.0000000000
0007.013办公费小包装车间.0000000000420.0000000000
0007.014运输费小包装车间.0000000000176770.0000000000
0007.015保险费小包装车间.000000000063290.0200000000
0007.016折旧费小包装车间.000000000038.8000000000
0007.020车船使用税小包装车间.00000000002560.0000000000
0007.028业务招待费小包装车间.0000000000179424.0000000000
0007.034其他小包装车间.000000000019689.4000000000
0007.010排污费(含赔偿)安全生产处.0000000000109562.0000000000
0007.013办公费安全生产处.00000000001940.0000000000
0007.032聘请中介机构费安全生产处.000000000050000.0000000000
0007.034其他安全生产处.000000000010000.0000000000
0007.012差旅费矿山资源处.00000000003450.0000000000
0007.013办公费矿山资源处.00000000001334.0000000000
0007.028业务招待费矿山资源处833.33333300001760.0000000000
0007.032聘请中介机构费矿山资源处.000000000050000.0000000000
0007.033矿产资源补偿费矿山资源处.000000000010000.0000000000
0007.034其他矿山资源处.00000000004000.0000000000
0007.034其他领导层.00000000001990.0000000000
0007.001工资公司办.0000000000106800.0000000000
0007.004职工教育经费公司办.000000000072360.0000000000
0007.008咨询费公司办.0000000000200000.0000000000
0007.013办公费公司办.0000000000146385.4000000000
0007.014运输费公司办.000000000029630.0000000000
0007.016折旧费公司办.0000000000396.4600000000
0007.017修理费公司办.000000000090870.0000000000
0007.028业务招待费公司办625.000000000029486.0000000000
0007.034其他公司办.0000000000110024.0000000000
0007.016折旧费业务员.0000000000263.6200000000
0007.013办公费销售公司.00000000006.0000000000
0007.034其他销售公司.00000000002000.0000000000
0007.004职工教育经费计财处.0000000000384.0000000000
0007.012差旅费计财处.00000000006546.0000000000
0007.013办公费计财处.000000000016349.6000000000
0007.016折旧费计财处.00000000002555.4800000000
0007.028业务招待费计财处4166.666666000060176.0000000000
0007.034其他计财处.00000000005200.0000000000
0007.013办公费技术监督处.0000000000152.0000000000
0007.016折旧费技术监督处.0000000000209.7600000000
0007.028业务招待费技术监督处416.66666600006392.0000000000
0007.034其他技术监督处.000000000024672.9800000000
0007.013办公费保卫处.0000000000360.0000000000
0007.028业务招待费保卫处250.0000000000926.0000000000
0007.034其他保卫处.0000000000120148.8600000000
0007.013办公费物业公司.0000000000174.0000000000
0007.014运输费物业公司.00000000008547.0000000000
0007.016折旧费物业公司.000000000059.5400000000
0007.034其他物业公司.00000000002203.7200000000
0007.034其他润泽公司.000000000030000.0000000000
0007.012差旅费燃料处.000000000020131.6400000000
0007.013办公费燃料处.00000000001347.0000000000
0007.028业务招待费燃料处1666.66666600003896.0000000000
0007.013办公费工会.00000000001179.2000000000
0007.016折旧费工会.0000000000247.0000000000
0007.028业务招待费工会250.00000000004940.0000000000
0007.012差旅费审计处.000000000011348.0000000000
0007.013办公费审计处.00000000001341.2000000000
0007.015保险费审计处.0000000000-1910577.5000000000
0007.028业务招待费审计处666.666666000016028.0000000000
0007.032聘请中介机构费审计处.000000000026000.0000000000
0007.034其他审计处.0000000000240.0000000000
0007.012差旅费结算中心.000000000012202.0000000000
0007.013办公费结算中心.00000000003099.4000000000
0007.016折旧费结算中心.0000000000142.5000000000
0007.028业务招待费结算中心2500.000000000060570.0000000000
0007.034其他结算中心.0000000000336.0000000000
0007.028业务招待费小包装车间.0000000000
0007.016折旧费公司办.0000000000396.4600000000


0007.013办公费技术中心.00000000007199.0000000000
0007.016折旧费技术中心.000000000083.9200000000
0007.028业务招待费技术中心833.33333300006288.0000000000
0007.028业务招待费接待处208.333333000013310.0000000000


有以上的表     现在要做成如下:
科目代码         科目名称         预算数       人事处           技术中心       接待处   ........

0007.028     业务招待费       208.3333                                                 13310.00
0007.013         办公费           ........
.
.
.
.
.
请问以上如何做成交叉表   ???请指教一下,做不完不能过年,各位帮助一下!


[解决办法]
declare @s varchar(8000)
set @s= 'select 科目代码,科目名称,sum(预算数) 预算数 '
select @s=@s+ ',sum(case 部门 when ' ' '+部门+ ' ' ' then 实际数 else 0 end) as '+部门+ ' ' from
(select distinct 部门 from testtable) a
set @s=@s+ ' from testtable group by 科目代码,科目名称 '
EXEC(@s)
[解决办法]
使用子查询的话你的部门好像太多了吧?这样拼成的sql与具相当的长,效率也不会高吧!我写个一个大概30个分类的子查询,好像还可以的。

热点排行