有两个a和b。其中a表是b表中的统计信息。
比如:b表有两个字段数量num和a_id,a表中有id字段和sumnum字段(正常情况下该字段就是b表中相同a_id的num求和的结果)我现在想把b表中的a_id相同的记录的num求和然后和a表中对应ID记录的sumnum字段比较验证是否相等。sql语句怎么写?

解决方案 »

  1.   

    select case when b_sum.sumnum=a.sumnum then '相等' else '不相等' end
    from (select a_id,[sumnum]=sum(num) from b group by a_id) b_sum
         join
         a on a.id=b_sum.a_id
      

  2.   

    if exists(.....)
    select a_id,count(1) as sumnum from b group by a_id
    print '相等'
    else 
    print '不相等'
      

  3.   

    select b_sum.a_id,case when IsNull(b_sum.sumnum,0)=IsNull(a.sumnum,0) then '相等' else '不相等' end 
    from (select a_id,[sumnum]=sum(num) from b group by a_id) b_sum join a on a.id=b_sum.a_id
      

  4.   

    select a.id , case when a.num = t.num then '=' else '<>' end from a,
    (select a_id , sum(num) num from b group by a_id) t
    where a.id = t.a_id