我有一个表格存储买家和供应商之间的交易,交易按表示信用票据或发票的“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