我有一個表格存儲買家和供應商之間的交易,交易按表示信用票據或發票的「doctype」分類。我正嘗試創建一個視圖,顯示相同交易的類似邊界的視圖。MYSQL CASE問題
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語句的結果,但其餘的返回空值。有一個更好的方法嗎?
我的目標是將此作爲視圖,但我甚至無法獲得查詢以顯示我想要的內容。我也嘗試過下面的一個可怕的黑客,但它甚至不工作
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表達式。 「**'如果條件爲THEN ...'**」和「**'CASE表達式當值THEN ...'**」。 – spencer7593