日期:2014-05-17  浏览次数:20403 次

求大神解答这条sql语句怎么写
三张表  

行业表
 
 


杭州城市表




按城市和行业分的地区生产总值构成表


要求: 查询杭州市第二产业工业大类下各行业中类的总产出、增加值、劳动者报酬、营业盈余

老师布置的作业,我想了好久都想不出来,求大神解答!!!
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.行业大类='工业'