我有帳戶有其關聯的類別&訂單表,其中訂單可以是債務或信用基於「order_type」字段&付款表,其中存儲支付日期連同金額(no用於債務或信用的負數)。A沒有限制哪裏聲明
目前我使用的是這樣的:
SELECT cat, SUM(p.amount) balance
FROM accounts a
LEFT JOIN orders o ON a.id = o.account_id
LEFT JOIN payments p ON o.id = p.order_id
WHERE YEAR(p.date) = 2012
GROUP BY a.cat
第一個問題:
這一切算作實收的錢是不對的,我已經嘗試過使用
sum(IF(o.order_type = 1, p.amount, p.amount * -1))
由於所有金額均爲負數,未能給出正確結果。
第二期:
它不會顯示在沒有付款是類別,這裏的限制因素是,我需要確保我只有2012,但我也希望在計算支付日期如果沒有付款,則用零顯示所有類別。
我接近它的錯誤方式?
如果有人知道任何問題或兩者的解決方案,請提供您的解決方案。
沒有付款的類別在該結果集中根本沒有任何記錄。您需要參加類別表,以便提供「缺失」的。 –