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

sql 语句

2013-03-29 
求助 sql 语句?我想得到这样的表格:单位名称月份1月份2月份3。。。。。月份12单位一计划102030实际203040盈亏10

求助 sql 语句?
我想得到这样的表格:
单位名称         月份1  月份2  月份3。。。。。月份12
单位一    计划   10     20    30
          实际   20     30    40
          盈亏   10     10    10
单位二    计划   10     20    30
        实际   20     30    40
        盈亏   10     10    10


数据库中能得到下面的数据:


单位名称  月份  计划  实际  盈亏
单位一    1    10   20   10


单位是动态的。
[解决办法]
select 单位名称 月份=1,其它列... from 表 
union all
select 单位名称 月份=2,其它列... from 表 
uinon all...
[解决办法]


create table tb 
(
单位名称nvarchar(10),
colnvarchar(10),
月份1int,
月份2int,
月份3int
)
insert into tb values('单位一','计划',10,20,30)
insert into tb values('单位一','实际',20,30,40)
insert into tb values('单位一','盈亏',10,10,10)
insert into tb values('单位二','计划',10,20,30)
insert into tb values('单位二','实际',20,30,40)
insert into tb values('单位二','盈亏',10,10,10)



select 单位名称,1,max(case when col = '计划' then 月份1 end) 计划,
max(case when col = '实际' then 月份1 end) 实际,
max(case when col = '盈亏' then 月份1 end) 盈亏
from tb 
group by 单位名称
union all
select 单位名称,2,max(case when col = '计划' then 月份2 end) 计划,
max(case when col = '实际' then 月份2 end) 实际,
max(case when col = '盈亏' then 月份2 end) 盈亏
from tb 
group by 单位名称
unall all ...
/*
单位名称,,计划,实际,盈亏
单位二,1,10,20,10
单位一,1,10,20,10
单位二,2,20,30,10
单位一,2,20,30,10
警告: 聚合或其他 SET 操作消除了空值。

(4 行受影响)


热点排行