所以,我有下面的代碼將空值設置爲0,然後在運算符中使用0?
SELECT PICK_SO_NUMBER, CUSTOMER, SO_PRODUCT, DO_QUANTITY, DO_PACKING, DO_DATE,
COALESCE(INVOICED_QTY, 0) AS INVOICED_QTY,
DO_QUANTITY-INVOICED_QTY AS NOT_INVOICED,
INVOICE_PACKING
FROM VW_TRAFFIC_PO_SIDE
WHERE DO_QUANTITY > INVOICED_QTY OR (INVOICED_QTY IS NULL AND DO_QUANTITY IS NOT NULL)
聚結下面的線,是假設從INVOICED_QTY減去DO_QUANTITY,然而,當INVOICED_QTY是NULL,它不再由0中減去,它減去由零,因此新列返回INVOICED_QTY爲NULL的空值
我嘗試了多種事情:嘗試合併到一個案例中,將coalesce寫爲INVOICED,然後在減法表達式中使用INVOICED,我嘗試在與減法相同的行中使用合併(中間沒有逗號,我覺得這是最好的解決方案,但無法編譯)
在什麼情況下是'INVOICED_QTY' null?爲什麼? –
@LightnessRacesinOrbit *只是一個猜測*,OP在該字段中插入一個沒有值並且沒有默認值的記錄。 –
,因爲查詢顯示(系統的)用戶未輸入發票時,卻收到發貨......此查詢旨在顯示人們何時忘記開具發票或每發貨時發票金額錯誤。 ..當某人沒有輸入發票時,該字段留空,因此,空分配 – socool111