有个表A,里面有 id,mc(名称),dj(单价),sl(数量),lb(类别)以及其他一些这里不需要的字段名
其中ID有好多个MC,MC对应收费价格和次数,LB有2和3两种,我要统计ID和对应他们收了多少钱,我要统计2或者3的话,这个很好统计
select id,sum(dj*sl) from A表 where lb=2(或者3) group by id
但是现在要我统计的是最后结果中LB为2的dj*sl一个字段,LB为3的dj*sl一个字段 就是结果是这样的
ID  SUM(SL*DJ)LB=2   SuM(SL*DJ)LB=3我试着写了好几次语句组后结果都不对,数字都非常大,因为有些ID2和3不一定都有,有些ID2和3都有,统计出两次语句最后用EXEL表格编辑也很麻烦,有人能告诉我如何这样一次性的写出来吗,数据正确的语句吗,谢谢了

解决方案 »

  1.   

    怎么都没人答复的,难道我这个SQL语句真有那么难吗,都难倒大家了!!!
      

  2.   

    难道是这个意思:
    select t1.id,t1.lb_2,t2.lb_3 from 
    (select id,sum(dj*sl) as lb_2 from A表 where lb=3 group by id) t1
    natural join
    (select id,sum(dj*sl) as lb_3 from A表 where lb=2 group by id) t2
    where t1.id = t2.id
      

  3.   

    上数据吧  具体点   这样?decode(lb,2,SUM(SL*DJ),0) l_2,
    decode(lb,3,SUM(SL*DJ),0) l_3where lb=2 or lb=3