这是我的 MySQL 查询:
SELECT ROUND(SUM(cfv.NUMBERVALUE),0) AS mysum
FROM jissue ji JOIN customfieldvalue cfv ON ji.ID=cfv.ISSUE
WHERE ji.pkey LIKE '%PB-%'
AND cfv.customfield=11381 AND ji.issuestatus=10127;
有两个可能的 cfv.customfield(11381 和 11382)和五个可能的 ji.issuestatus(10127 -> 10131),因此我运行查询十次,每次更改这两个字段。
是否可以将其压缩为一个查询,该查询将返回所有 10 个 SUM?
编辑:我希望结果也包含空值。目前,仅返回 8 行,因为 ji.issuestatus=10128 没有 11381 和 11382 的 NUMBERVALUE。我希望结果为还包括 10128 和 11381/2 的空值。
最佳答案
类似这样的事情:
SELECT cfv.customfield, ji.issuestatus, ROUND(SUM(cfv.NUMBERVALUE),0) AS mysum
FROM jissue ji JOIN customfieldvalue cfv ON ji.ID=cfv.ISSUE
WHERE ji.pkey LIKE '%PB-%'
AND cfv.customfield IN (11381, 11382) AND ji.issuestatus IN (10127, 10128, ..., 10131)
GROUP BY cfv.customfield, ji.issuestatus
前两列和 GROUP BY 子句在那里,以便您获得十个不同组合中每一个组合的总和,否则您将只获得与十个组合中的任何一个匹配的所有行的总和。
关于mysql - 我可以将十个相似的 SQL 查询合并为一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598474/