我有2個數據庫表。跟蹤向公司發出訂單的位置,另一個跟蹤向公司支付訂單的付款。SQL語句中的語法錯誤
我想創建一個SQL查詢,它顯示每個訂單ID,訂單總金額以及尚未付款的未完成訂單金額。 客戶被允許支付「分期付款」說,因此,目的是計算未付的總額並顯示它。
這是我到目前爲止,但是它沒有付款時返回'null'。這顯然意味着沒有基於特定訂單的記錄,因此客戶支付的總金額= 0。因此,未付金額等於總金額。
我想我的sql代碼顯示訂單的總金額,當整個金額仍未完成時,而不是null。
這怎麼辦?
我試過一個case語句,但我認爲我的語法是錯誤的。
這裏沒有case語句的版本,在沒有支付已經發生,返回null:
SELECT
pb_orders.id AS 'Order ID', pb_orders.order_total AS 'Total',
SUM(pb_payments.amount) AS 'Amount Paid', pb_orders.order_total -
SUM(pb_payments.amount) AS 'Outstanding Amount'
FROM
pb_orders
INNER JOIN
pb_payments ON pb_orders.id = pb_payments.link_id
WHERE
pb_orders.id = 1556
這裏是我的case語句嘗試:
SELECT
pb_orders.id AS 'Order ID', pb_orders.order_total AS 'Total',
SUM(pb_payments.amount) AS 'Amount Paid'
WHEN 'Amount Paid' = 'NULL'
THEN 'Amount Paid' = pb_orders.order_total,
pb_orders.order_total - SUM(pb_payments.amount) AS 'Outstanding Amount',
FROM
pb_orders
INNER JOIN
pb_payments ON pb_orders.id = pb_payments.link_id
WHERE
pb_orders.id = 1555
我刪除了多餘的數據庫標籤。隨意爲您實際使用的數據庫添加標籤。 –
奇怪,你甚至說你正在使用'CASE',但我沒有在任何地方看到'CASE' – Lamak
看起來像是case case語句的一部分(例如'WHEN'和'THEN',但你沒有't包括'CASE'和'END') – Bridge