sum(yz_rkb.dj*zl) SUM放在CASE外面  SUM(CASE WHEN ....THEN ...ELSE 0 END)

解决方案 »

  1.   

    case 和 null 得写法不对

    case when rkfs is null then ...
      

  2.   

    to j9988(j9988) 我把SUM放到了外面,不过提示( 不能对包含聚合或子查询的表达式执行聚合函数。)
      

  3.   

    case when (select top 1 dj,max(rq) as dd from yz_tjb,yz_rkmxb where yz_tjb.yzth=yz_rkmxb.yzth group by dj) is  NULL then yz_rkb.dj*zl else yz_tjb.dj*zl end我把那句话改成如上,错误依旧(列前缀 'yz_tjb' 与查询中所用的表名或别名不匹配。)
    怎么办呢:(
      

  4.   

    case (select top 1 yz_tjb.dj from yz_tjb) when NULL 
    then select sum(yz_rkb.dj*zl) from yz_rkb 
    else select sum(yz_tjb.dj*zl) from yz_tjb
    end
      

  5.   

    TO sunrisehy2003(黎明) 
    使用 select sum(yz_rkb.dj*zl) from yz_rkb 那所有的该列值都变成了同一个值了