select dwzh,if case b.dwzh in(select dwzh from a) then sum(a.zje-b.zje) else a.zje from hk_yyn a,cp_yyn b

解决方案 »

  1.   

    你要该层什么样子不太明白?
    select dwzh,if case b.dwzh in(select dwzh from a) then sum(a.zje-b.zje) else a.zje from hk_yyn a,cp_yyn b 
    请问 如果b.dwzh 都不在a表中  你怎么去取出相关的a.zje ?
      

  2.   


    select a.dwzh,a.zje-isnull(b.zje,0) from hk_yyn a left join cp_yyn b on b.dwzh=a.dwzh
    是这个吗?
      

  3.   

    select dwzh,sum(a.zje-b.zje) from hk_yyn a,cp_yyn b where b.dwzh in(select dwzh from a)
    select dwzh,a.zje from hk_yyn a,cp_yyn b where b.dwzh not in(select dwzh from a)
    ??????
      

  4.   

    这样?
    select a.dwzh,a.zje-isnull(b.zje,0) from hk_yyn a left join cp_yyn b on b.dwzh=a.dwzh
      

  5.   

    select a.dwzh,(case when b.dwzh in (select dwzh from hk_yyn) then sum(a.zje-b.zje) else a.zje end) from hk_yyn a,cp_yyn b服务器: 消息 8118,级别 16,状态 1,行 1
    列 'a.dwzh' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
    服务器: 消息 8118,级别 16,状态 1,行 1
    列 'b.dwzh' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
    服务器: 消息 8118,级别 16,状态 1,行 1
    列 'a.zje' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
      

  6.   


    select a.dwzh,(case when b.dwzh in (select dwzh from hk_yyn) then sum(a.zje-b.zje) else a.zje end) from hk_yyn a,cp_yynb group by a.dwzh,b.dwzh,a.zje 
      

  7.   

    有sum()聚合函数的话,要group分组的
      

  8.   

    加过group by ,对方说还是不对,所以上来问下,明天再看看
      

  9.   

    SQL SERVER:
    select a.dwzh,sum(a.zje-isnull(b.zje,0)) as zje from hk_yyn a left outer join cp_yyn b on a.dwzh=b.dwzh group by a.dwzh