注册 登录
编程论坛 SQL Server论坛

sql行转列

clhuanghunan 发布于 2012-08-31 13:30, 456 次点击
我原有一张表,结构是这样
科目编码    科目名称    期初余额    借方发生额    贷方发生额    期末余额    电子数据名称
207      其他应付款    96250.96    296851.56    424834.41    224233.81    2007年
20701       个人      0      100285.96    100285.96        0    2007年
2070101    个人基本养老保险金    0    40741.3     40741.3        0    2007年
2070103    个人医保费     0       12926.88    15767.76     2840.88    2007年
207      其他应付款    224233.81    322263.24    726468.74    628439.31   2008年
20701        个人     0       106125.94    106125.94        0   2008年
2070101    个人基本养老保险金    0    41574.5     41574.5         0   2008年
2070103    个人医保费    2840.88     19871.44    17030.56         0   2008年
我现在想把表结构变为这样
科目编码    科目名称    2007年期初余额    2007年借方发生额    2007年贷方发生额  2008年借方发生额    2008年贷方发生额  2008年期末余额   
207      其他应付款     96250.96      296851.56        424834.41       322263.24      726468.74       628439.31   
20701      个人         0        100285.96        100285.96       106125.94      106125.94        0   
2070101    个人基本养老保险金    0        40741.3             40741.3       41574.5      41574.5         0   
2070103    个人医保费            0           12926.88              15767.76           19871.44         17030.56            0   
请问各位大侠能不告诉我如何写SQL语句。
拜托大家。



4 回复
#2
cnfarer2012-09-01 06:23
用case进行查询
#3
netlin2012-09-01 13:33
还可以对这个表进行联接查询。思路如下,供参考:
select ...... from 表 a inner join 表 b on a.科目编码=b.科目编码 and a.电子数据名称=2007 and b.电子数据名称=2008
#4
CXP07142012-09-03 10:32
楼上的思路
select a.科目编码,a.科目名称,a.期初余额 as '2007年期初余额',a.借方发生额 as '2007年借方发生额',a.贷方发生额 as '2007年贷方发生额',b.期初余额 as '2008年期初余额',b.借方发生额 as '2008年借方发生额',b.贷方发生额 as '2008年贷方发生额'
from table1 a inner join table1 b on a.科目编码=b.科目编码 and a.电子数据名称='2007年' and b.电子数据名称='2008年'
#5
netlin2012-09-05 08:44
谢谢!
本想留点余地给楼主想一想!
1