私は買い手とサプライヤ間のトランザクションを格納するテーブルを持っていますが、取引はクレジットメモや請求書を示す「doctype」で分類されます。私は同じトランザクションのlegderのようなビューを表示するビューを作成しようとしています。MYSQLのケース問題
SELECT
SUM(CASE doctype WHEN doctype = 1 THEN docvalue END) AS Invoice,
SUM(CASE doctype WHEN doctype = 2 THEN docvalue END) AS CreditNote,
SUM(CASE doctype WHEN doctype = 3 THEN docvalue END) AS JournalEntry,
SUM(CASE doctype WHEN doctype = 4 THEN docvalue END) AS Payment
FROM transactions
group by buyer
このクエリを実行すると、最初のCASE文の結果が表示されますが、残りの部分はnull値を返します。これを行うより良い方法はありますか?
私の目標はこれをビューにすることですが、私が望むものを表示するためのクエリを取得することさえできません。私は私の髪をかきむしるだろうが、私ははげてる私もひどいハックとして以下しようとしたが、それも
SELECT
(sum(docvalue)
FROM transactions where doctype =1) as invoices,
(sum(docvalue)
FROM transactions where doctype =2) as creditnotes,
(sum(docvalue)
FROM transactions where doctype =3) as journals,
(sum(docvalue)
FROM transactions where doctype =4) as payments
from transactions
動作しません!
CASE式には2つの形式があります。 "**'条件が満たされたときのケース... ** **と** ** CASE式のときはTHEN ...となります。 – spencer7593