2017-02-27 5 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 Fiddleを追加することを検討してください - これは単純なデータセットを含むこともできます。 – 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

真、order節で数値インデックスを設定することもできます – Psi

関連する問題