有3个表,项目表 t_xm,学科表 t_xk,奖种表 t_jz,后两个表是编号表,项目表中有项目编号,项目名,学科号,奖种号现在要统计各个学科所涉及项目所涉及奖种的数目,具体为
学科号,学科名,奖种1数量,奖种2数量,奖种3数量,请问sql语句该怎么写?奖种表可以不用,奖种号就是1,2,3

解决方案 »

  1.   

    select t1.学科号,t1.学科名, sum(case when t2.奖种号 = 1 then 1 else 0 end),
           sum(case when t2.奖种号 = 2 then 1 else 0 end), 
           sum(case when t2.奖种号 = 3 then 1 else 0 end)  
    from t_xm t1, t_xk t2 
    where t1.学科号 = t2.学科号 
    group by t1.学科号, t1.t1.学科名;
      

  2.   

    t1.t1.学科名 -> t1.学科名
      

  3.   

    select a.学科号,
           count(case when b.奖种号=1 then 1 end)奖种1项目数量,
           count(case when b.奖种号=2 then 1 end)奖种2项目数量,
           count(case when b.奖种号=3 then 1 end)奖种3项目数量
     from
       学科表 a left join 项目表 b
     on a.学科号=b.学科号
     group by a.学科号