2017-02-27 33 views
-4

我對編程非常陌生。在我的數據庫類中,我必須「只返回具有大於50的餘額的發票」。 當我運行這個,沒有出現。我究竟做錯了什麼?如何找出爲什麼SQL查詢不會按預期生成行?

USE ap; 
SELECT invoice_number, payment_total + credit_total AS 'payment_credit_total' , invoice_total - 'payment_credit_total' AS 'balance_due' 
FROM invoices 
WHERE 'balance_due' > 50 
ORDER BY 'balance_due' DESC 
+0

幸運的是,讀者已經發現了這個查詢的問題。但是,通常我們會問這個問題,準備問題的最小可能的測試數據集。就目前而言,如果有人沒有發現查詢問題,答案可能是所討論的表是空的。考慮在你的問題中增加一個SQL小提琴 - 它也可以包含一個簡單的數據集。 – halfer

回答

-1

balance_due是您的表達式的別名,它只是結果集上的標籤。但是,您不能在查詢中使用它。

SELECT invoice_number, payment_total + credit_total AS 'payment_credit_total' , invoice_total - payment_total + credit_total AS 'balance_due' 
FROM invoices 
WHERE invoice_total - payment_total + credit_total > 50 
ORDER BY invoice_total - payment_total + credit_total DESC 
+0

不完全。你*不能*在WHERE子句中使用它,但是你可以*在ORDER BY子句中使用它。 – Strawberry

+0

確實,在訂單子句中,您甚至可以設置數字索引 – Psi