请教一道sql题
7.请用一个sql语句得出结果从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。如使用存储过程也可以。...
7.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
如使用存储过程也可以。
table1
月份mon 部门dep 业绩yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部门dep 部门名称dname
--------------------------------
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部
table3 (result)
部门dep 一月份 二月份 三月份
--------------------------------------
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
------------------------------------------ 展开
从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
如使用存储过程也可以。
table1
月份mon 部门dep 业绩yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部门dep 部门名称dname
--------------------------------
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部
table3 (result)
部门dep 一月份 二月份 三月份
--------------------------------------
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
------------------------------------------ 展开
3个回答
展开全部
在SQL 2005中经过测试:
select * from T1
pivot(sum(业绩)
for 月份 in(一月份,二月份,三月份))as t3
要作为字段的月份必须自己列出来。
把我建表的信息也放这:
create table t1(月份 nvarchar(5),部门ID int, 业绩 money)
insert t1 values('一月份',01,10)
insert t1 values('一月份',02,10)
insert t1 values('一月份',03,5)
insert t1 values('二月份', 02 , 8)
insert t1 values('二月份', 04 ,9)
insert t1 values('三月份', 03 ,8)
create table t2(部门ID int,部门名称 nvarchar(10))
insert t2 values( 01 , '国内业务一部')
insert t2 values( 02 , '国内业务二部')
insert t2 values( 03 , '国内业务三部')
insert t2 values( 04 , '国际业务部')
select * from T1
pivot(sum(业绩)
for 月份 in(一月份,二月份,三月份))as t3
要作为字段的月份必须自己列出来。
把我建表的信息也放这:
create table t1(月份 nvarchar(5),部门ID int, 业绩 money)
insert t1 values('一月份',01,10)
insert t1 values('一月份',02,10)
insert t1 values('一月份',03,5)
insert t1 values('二月份', 02 , 8)
insert t1 values('二月份', 04 ,9)
insert t1 values('三月份', 03 ,8)
create table t2(部门ID int,部门名称 nvarchar(10))
insert t2 values( 01 , '国内业务一部')
insert t2 values( 02 , '国内业务二部')
insert t2 values( 03 , '国内业务三部')
insert t2 values( 04 , '国际业务部')
展开全部
sql2000实现:
select 部门dep,(case when 月份mon='一月份' then 业绩yj else null end) as 一月份,
(case when 月份mon='二月份' then 业绩yj else null end) as 二月份,
(case when 月份mon='三月份' then 业绩yj else null end) as 三月份 from table1
select 部门dep,(case when 月份mon='一月份' then 业绩yj else null end) as 一月份,
(case when 月份mon='二月份' then 业绩yj else null end) as 二月份,
(case when 月份mon='三月份' then 业绩yj else null end) as 三月份 from table1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说得是,不过楼主你的table3的数据有点问题
03 null 5 8
应该是
03 5 null 8
从表1里很明显可以看到,业务部03在2月份没有业绩
03 null 5 8
应该是
03 5 null 8
从表1里很明显可以看到,业务部03在2月份没有业绩
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |