2015-07-01 46 views
2

我有一個case語句作爲更大的查詢的一部分。添加Case語句而不是減去

CASE 
    WHEN #TAB.PEND_ORDER = #TAB2.PEND_ORDER AND SUM_OVERPMT > 0 
    THEN (#TAB.OUTBND_837_CLM_BILL_AMT - (SUM_835_CLM_PAID_AMT - SUM_OVERPMT)) 
    WHEN #TAB.PEND_ORDER = #TAB2.PEND_ORDER AND SUM_OVERPMT IS NULL 
    THEN (#TAB.OUTBND_837_CLM_BILL_AMT - SUM_835_CLM_PAID_AMT) 
END AS 'BALANCE' 

在本節中,

CASE 
    WHEN #TAB.PEND_ORDER = #TAB2.PEND_ORDER AND SUM_OVERPMT > 0 
     THEN (#TAB.OUTBND_837_CLM_BILL_AMT - (SUM_835_CLM_PAID_AMT - SUM_OVERPMT)) 

它添加SUM_OVERPMT,而不是減去的。

實施例:

  • #TAB.OUTBND_837_CLM_BILL_AMT156.25
  • SUM_835_CLM_PAID_AMT162.36
  • SUM_OVERPMT133.90

我平衡應-140.01但我得到127.29

+3

1 - (1 - 1)= 1 – Amit

+0

示例 - #TAB.OUTBND_837_CLM_BILL_AMT是156.25。 SUM_835_CLM_PAID_AMT是162.36。 SUM_OVERPMT是133.90。我的餘額應該是-140.01,但是我得到127.29。 – sammy68

+0

看起來像我的parens在錯誤的地方。我會嘗試改變它。 – sammy68

回答

0

您的括號內容有誤。取出內支架和嘗試這個代替:

DECLARE @sum_overpmt float = 133.90, 
     @sum_835_clm_paid_amt float = 162.36, 
     @outbnd_837_clm_bill_amt float = 156.25  

SELECT CASE WHEN @sum_overpmt > 0 
      THEN (@outbnd_837_clm_bill_amt - @sum_835_clm_paid_amt - @sum_overpmt) 
     END -- Result: -140.01