我試圖讓這個查詢總結客戶收費不包括稅。在這種情況下,客戶費用和稅金稱爲i.cht_itemcode(VARCHAR(5)),它位於Invoicedetail表中。 原來我使用LEFT JOIN在Invoicedetail表,這是不對的帶來。 Orderheader表的值o.ord_charge與ivd_charge的值相同,其中cht_itemcode是LHF。case語句來排除特定值SUM
我結束了書面方式那段這種方式來代替,並移除左連接。而不是試圖在查詢本身做SUM,我決定拆分2種不同的收費金額,並在SSRS中進行SUM。
CASE WHEN o.ord_invoicestatus='AVL'
THEN o.ord_charge
ELSE (select sum(i.ivd_charge) from invoicedetail i
where i.cht_itemcode='LHF' and i.ord_hdrnumber=o.ord_hdrnumber)
END as 'Revenue',
(SELECT SUM(I.IVD_CHARGE) from invoicedetail i where
i.ord_hdrnumber=o.ord_hdrnumber and i.cht_itemcode not in ('LHF','HST2','TAX3','GST','BCCT'))'Accessorial'
你可以把'CASE'在'SUM',但不知道這是什麼你問..'SUM(CASE WHEN cht_itemcode IN( 'HST2', 'TAX3', 'BCCT')THEN 0 ELSE i.IVD_CHARGE END)' – JamieD77