公司名 应缴金额 是否缴纳
a 120 1(已缴纳)
b 60 0
c 120 0
a 120 0
a 120 0
b 60 1
结果如下
公司名 应缴金额 已缴金额 未缴金额
a 360 120 240
b 120 60 60
c 120 120 0

解决方案 »

  1.   


    select AA.公司名 ,AA.应缴金额,AA.已缴金额,(AA.应缴金额-AA.已缴金额)
    (
    (select 公司名,sum(应缴金额) from Table_Name group by 公司名) A
     left join (select 公司名,sum(应缴金额) from Table_Name where 是否已缴 = 1 group by 公司名) B
     on A.公司名=B.公司名
    ) AA
    大致上是这个思路,中间可能不对
      

  2.   


    公司名 应缴金额 是否缴纳
    a 120 1(已缴纳)
    b 60 0
    c 120 0
    a 120 0
    a 120 0
    b 60 1
    结果如下
    公司名 应缴金额 已缴金额 未缴金额
    a 360 120 240
    b 120 60 60
    c 120 120 0后面不是有表示字段么?1为已经缴纳,0为未缴纳
      

  3.   

    这个,貌似用存储过程好做点,一个sql很难实现吧。。
      

  4.   

    哦  对不起  我懂了   已交纳就是说全部都缴纳了  呵呵  不过你的表有问题  根据结果c是否缴纳这项应该为1
    Select sum(应缴金额) as '已缴金额' from tableName where 是否缴纳==1 group by '公司名';