case 嵌套在sum里怎么获得返回值给sum 呢
我觉得这实现不了所想要的功能
如果想计算d.value+(-d.value)在查询里 该怎么实现呢 
SELECT 
SUM(CASE WHEN   d.OperateType = 1 
            AND  d.ReviewFlag = 1 
            AND  h.OffsetFlag = 0  
            AND  d.FundType = 2 
          THEN  d.Value      --入金,已经复核的,未冲销的,支票
          WHEN  d.OperateType = 2 
            AND  d.ReviewFlag = 1 
            AND  h.OffsetFlag = 0  
            AND  d.FundType = 2 
          THEN -d.Value      --出金,已经复核的,未冲销的,支票
          ELSE  0 
          END;
           ) sValue
FROM ...

解决方案 »

  1.   

    例子。
    with test AS (
    select 10 AS c1 ,'A' AS c2 FROM DUAL
    UNION ALL
    select 20 AS c1 ,'A' AS c2 FROM DUAL
    UNION ALL
    select 30 AS c1 ,'B' AS c2 FROM DUAL
    UNION ALL
    select 40 AS c1 ,'A' AS c2 FROM DUAL
    UNION ALL
    select 50 AS c1 ,'A' AS c2 FROM DUAL
    )
     SELECT SUM(CASE
                  WHEN c2 = 'A' THEN
                   c1
                  WHEN c2 = 'B' THEN
                   -c1
                  ELSE
                   0
                END) AS TT
       FROM TEST
    ===============
    1 90
    ===============
    你的应该可以。