面试题(一)

用一个sql语句从table1,table2中取出如table3所列格式数据

请用一个sql语句得出结果

从table1,table2中取出如table3所列格式数据

table1

月份mon   部门dep   业绩yj
——————————-
一月份      01        10
一月份      02        10
一月份      03         5
二月份      02         8
二月份      04         9
三月份      03         8

table2

部门dep      部门名称depname
——————————–
01      国内业务一部
02      国内业务二部
03      国内业务三部
04      国际业务部

table3 (result)

部门dep     一月份      二月份      三月份
—————————————————
01      10        null         null
02      10         8           null
03      5         null          8
04      null       9           null
——————————————————-

答案:

select table2.dep,t1.yj ‘一月份’,t2.yj ‘二月份’,t3.yj ‘三月份’ from table2,
(select b.dep,a.yj from table1 a right join table2 b on a.dep=b.dep and a.mon=’一月份’) t1,
(select b.dep,a.yj from table1 a right join table2 b on a.dep=b.dep and a.mon=’二月份’ ) t2,
(select b.dep,a.yj from table1 a right join table2 b on a.dep=b.dep and a.mon=’三月份’) t3
where table2.dep=t1.dep and table2.dep=t2.dep and table2.dep=t3.dep