我的一个查询出现问题。
SELECT
CASE WHEN b.value IS NULL
THEN sum(d.value)
ELSE sum(d.value) + sum(b.value)
END AS sumaWydatkow
FROM data d
LEFT JOIN data_bills b
ON d.id = b.data_id
WHERE d.type = 0
UNION
SELECT
CASE WHEN b.value IS NULL
THEN sum(d.value)
ELSE sum(d.value) + sum(b.value)
END AS sumaPrzychodow
FROM data d
LEFT JOIN data_bills b
ON d.id = b.data_id
WHERE d.type = 1
我想对两列求和,或者如果其中一列 (data_bills) 为空,则仅对一张表求和,并具有两种版本的列类型:0 和 1。
但现在是一列有两条记录。我想要两列,每列一列。 我想问是否可以通过一个查询来完成?
谢谢
最佳答案
尝试这个查询:
SELECT
( SELECT
CASE WHEN b.value IS NULL
THEN sum(d.value)
ELSE sum(d.value) + sum(b.value)
END AS sumaWydatkow
FROM data d
LEFT JOIN data_bills b
ON d.id = b.data_id
WHERE d.type = 0
) type0,
( SELECT
CASE WHEN b.value IS NULL
THEN sum(d.value)
ELSE sum(d.value) + sum(b.value)
END AS sumaPrzychodow
FROM data d
LEFT JOIN data_bills b
ON d.id = b.data_id
WHERE d.type = 1
) type1
关于php - 一个查询中的多个数学值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480790/