| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:sql行转列
只看楼主 加入收藏
clhuanghunan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-8-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
sql行转列
我原有一张表,结构是这样
科目编码    科目名称    期初余额    借方发生额    贷方发生额    期末余额    电子数据名称
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语句。
拜托大家。



搜索更多相关主题的帖子: 其他 保险金 余额 
2012-08-31 13:30
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:7 
用case进行查询

★★★★★为人民服务★★★★★
2012-09-01 06:23
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:7 
还可以对这个表进行联接查询。思路如下,供参考:
select ...... from 表 a inner join 表 b on a.科目编码=b.科目编码 and a.电子数据名称=2007 and b.电子数据名称=2008

做自己喜欢的事!
2012-09-01 13:33
CXP0714
Rank: 2
等 级:论坛游民
帖 子:7
专家分:18
注 册:2011-12-1
收藏
得分:7 
楼上的思路
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年'
2012-09-03 10:32
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:0 
谢谢!
本想留点余地给楼主想一想!

做自己喜欢的事!
2012-09-05 08:44
快速回复:sql行转列
数据加载中...
 
   



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

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