2017-07-24 42 views
0

如果在SQL Server中使用CASE WHEN時滿足3個條件,則遇到困難。這是我的原始腳本,但只返回值0而不是1和0.我的目的是檢查客戶購買ITEM_01大於或等於0.06和ITEM_02大於或等於0.06時返回值1 else 0是我的腳本:如何在SQL中使用CASE時滿足3個條件

CASE WHEN SUM (CASE WHEN ITEM_01)='DH' AND (ITEM_02)='DH Classic' THEN NVL 
(SALE_OUTLETD.PRE_SALES_QTY * SKU_UOM_CONV.MULTIPLIER,0) + NVL 
(SALE_OUTLETD.SALES_QTY * SKU_UOM_CONV.MULTIPLIER, 0) -NVL 
(SALE_OUTLETD.FRESH_RTN_QTY *SKU_UOM_CONV.MULTIPLIER, 0) - NVL 
(SALE_OUTLETD.OLD_RTN_QTY * SKU_UOM_CONV.MULTIPLIER,0) - NVL 
(SALE_OUTLETD.DAMAGED_RTN_QTY *SKU_UOM_CONV.MULTIPLIER, 0) - NVL 
(SALE_OUTLETD.WITHDRAWAL_RTN_QTY *SKU_UOM_CONV.MULTIPLIER, 0) ELSE 0 END) 
>= 0.06 THEN 1 ELSE 0 END 3_PACK_AND_ABOVE 

請幫助解決這個問題,因爲我一直堅持了幾個小時。任何幫助將不勝感激!

+0

我建議你檢查你內心的情況。顯示ITEM_01,ITEM_02和案例本身,看看你是否有值> = 0.06 – Steven

+0

嗨@StevenBENET,是有相當多的記錄,因此在這裏觸發我的問題,只返回值0.謝謝 – user2256904

+0

那麼總和?因爲最終,這應該是大於0.06 – Steven

回答

0

我發現你的榜樣無法讀取但CASE的基本形式是:

select case WHEN first_boolean THEN first_value 
      WHEN second_boolean THEN second_value 
      WHEN third_boolean THEN third_value 
      ... 
      ELSE default_value 

總是試圖建立東西了這一模式。嵌套的CASE語句,比如你所做的事情從來沒有樂趣,並且傾向於相當容易出錯。

+0

嗨@Chris Travers,謝謝你的建議。我可否知道如何檢查ITEM_01和ITEM_02的淨銷售額是否具有> = 0.06的銷售額?我已編輯腳本以方便閱讀,對由此造成的不便深表歉意。謝謝。 – user2256904