У меня есть таблица, в которой хранятся транзакции между покупателем и поставщиком, транзакции классифицируются по типу «doctype», обозначающему кредитную ноту или счет-фактуру. Я пытаюсь создать представление, которое отображает однопользовательский вид одних и тех же транзакций.Проблема с CASE с 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, но остальные возвращают нулевые значения. Есть лучший способ сделать это?
Моя цель - иметь это как представление, но я даже не могу получить запрос, чтобы показать, что я хочу. Я также попробовал следующее как ужасный взлом, но он даже не работает
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. "**' CASE WHEN условие THEN ... '**" и "**' выражение CASE WHEN значение THEN ... '**". – spencer7593