求大神解答这条sql语句怎么写
三张表
行业表
杭州城市表
按城市和行业分的地区生产总值构成表
要求: 查询杭州市第二产业工业大类下各行业中类的总产出、增加值、劳动者报酬、营业盈余
老师布置的作业,我想了好久都想不出来,求大神解答!!!
------解决方案--------------------select sum(表3.总产出),sum(表3.增加值),sum(表3.劳动者报酬),sum(表3.营业盈余),表2.地市名称,表1.行业中类 from 表2 left join 表3 on 表3.地市ID=表1.地市ID left join 表1 on 表1.行业ID=表3.行业ID where 表2.地市ID='杭州市' and 表1.产业='第二产业' and 表1.行业大类='工业' GROUP by 表2.地市名称,表1.行业中类
------解决方案--------------------看看这个是你要的吗:
select a.城市名称,
b.行业大类,
b.行业中类,
SUM(c.总产出) as 总产出,
sum(c.增加值) as 增加值,
sum(c.劳动者报酬) as 劳动者报酬,
sum(c.营业盈余) as 营业盈余
from 杭州城市表 a
inner join 行业表 b
on a.城市名称='杭州'
and b.产业='第二产业'
and b.行业大类='工业'
left join 按城市和行业分的地区生产总值构成表 c
on a.城市ID = c.城市ID
and b.行业ID = c.行业中类ID
group by a.城市名称,
b.行业大类,
b.行业中类
------解决方案--------------------select 总产出,增加值,劳动者报酬,营业盈余 from 行业表 as a,按城市和行业分的地区生产总值构成表 as b where a.城市ID=(select 城市ID from 杭州城市表 where 城市名称='杭州市') and a.行业中类ID=b.行业ID and b.产业='第二产业'
------解决方案--------------------try this,
select b.地市名称,c.行业中类,
a.总产出,a.增加值,a.劳动者报酬,a.营业盈余
from 生产总值构成表 a
inner join 城市表 b on a.地市ID=b.地市ID
inner join 行业表 c on a.行业中类ID=c.行业ID
where b.地市名称='杭州市'
and c.产业='第二产业' and c.行业大类='工业'