求SQL语句?(50分)

  • 主题发起人 主题发起人 dxwwgr
  • 开始时间 开始时间
select 姓名,
(select sum(工资) from 表二 where 代号=tab1.代号) as 工资总数,
(select sum(奖金) from 表三 where 代号=tab1.代号) as 奖金总数,
(select sum(工资) from 表二 where 代号=tab1.代号)+(select sum(奖金) from 表三 where 代号=tab1.代号) as 收入总数
from 表一 tab1
order by 代号
 
化简一下:
select 姓名,
(select sum(工资) from 表二 where 代号=tab1.代号) as 工资总数,
(select sum(奖金) from 表三 where 代号=tab1.代号) as 奖金总数,
(工资总数+奖金总数) as 收入总数
from 表一 tab1
order by 代号
 
楼上的回答应该是可以了~
要是再不行,就用下面的左连接,
不过比较慢哦
selct 姓名,工资总数,奖金总数,收入总数 from 表一 left join
(select 代号 ,sum(工资) from 表二 on 代号=表一.代号
left join)
(select 代号,sum(奖金) from 表三 on 代号=表三.代号 left join )
(select sum(表二.工资)+sum(表三.奖金) 收入总数 where 表三.代号=表二.代号 on 表二.代号=表一.代号 ) order by 表一.代号
 
后退
顶部