mysql - 我可以将十个相似的 SQL 查询合并为一个吗?

标签 mysql sql

这是我的 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/

相关文章:

php - mysql select and where over several tables(非常棘手)

显示多个条目及其计数的 SQL 查询

sql - SSIS 包在调试时立即取消

mysql - #1054 - 'on clause' 中的未知列

sql - 使用单个 SQL 同步两个表

mysql - 我无法在 mysql 上运行触发器

mysql - 根据另一个表中的行数对mysql表进行排序

php - MYSQL向多个用户发送通知

mysql - 恢复MySQL中被截断的字符

mysql - 选择mysql数据并根据时间戳列设置变量值