MYSQL的CASE问题

时间:2016-07-22 14:54:01

标签: mysql

我有一个存储买方和供应商之间交易的表,交易按“doctype”分类,表示信用票据或发票。我正在尝试创建一个视图,显示相同事务的类似于legder的视图。

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

我会撕掉我的头发,但我是秃头!

1 个答案:

答案 0 :(得分:1)

CASE的语法不正确。这是一个修改版本:

firebase.database().goOnline();