我在 SAP B1 中使用了以下查詢,如果客戶有日記帳分錄,那么它可以正常作業,但是如果他們沒有任何現有的日記帳分錄,則沒有結果。即使沒有記錄,我也試圖讓它顯示“未付”。
我嘗試計算客戶的記錄數,但一旦我按其他欄位分組,查詢就不再有效。下面的示例用于我知道將回傳空值的一個特定檔案。
SELECT CASE
WHEN T0.Debit = 5921.41 AND T0.RefDate >= [%0] THEN 'Paid'
ELSE 'Unpaid'
END FROM JDT1 T0 WHERE T0.[ContraAct] = 'C004166'
uj5u.com熱心網友回復:
根據合同是否存在,您會得到一個結果行還是沒有結果行。但是無論如何你都想要一排。通過聚合資料,您可以保證得到準確的一行。因此,只需更改T0.Debit為MIN(T0.Debit)orMAX(T0.Debit)并執行相同T0.RefDate操作即可完成:
SELECT
CASE WHEN MAX(T0.Debit) = 5921.41 AND MAX(T0.RefDate) >= [%0]
THEN 'Paid'
ELSE 'Unpaid'
END AS status
FROM JDT1 T0
WHERE T0.[ContraAct] = 'C004166';
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494086.html
上一篇:使用CASE陳述句進行連接
下一篇:如果不存在則求和內部連接??=0
