标题重写为:实现SQL查询的动态化
P粉478188786
P粉478188786 2023-09-06 15:20:57
0
1
548

我有以下的SQL查询,想知道是否可以使其中的SUM()部分动态化,这样我就不需要手动输入category_id (2和3)。

SELECT 
a.project_id,
COUNT(a.id) AS Total,
SUM(CASE WHEN a.category_id = 2 AND a.`status` < 80 THEN 1 ELSE 0 END) AS 'Bugs En cours',
SUM(CASE WHEN a.category_id = 2 AND a.`status` >= 80 THEN 1 ELSE 0 END) AS 'Bugs Resolu',
SUM(CASE WHEN a.category_id = 3 AND a.`status` < 80 THEN 1 ELSE 0 END) AS 'Ameliorations En cours',
SUM(CASE WHEN a.category_id = 3 AND a.`status` >= 80 THEN 1 ELSE 0 END) AS 'Ameliorations Resolu'
FROM bugs a 
GROUP BY a.project_id
HAVING COUNT(a.id) > 0

目标是根据category_id和status('En cours'或'Resolu')列出项目id和不同类型的Anomalies的计数。

这个查询的问题是,如果我们添加了另一个category,我就必须手动编辑这个查询,这并不理想。

P粉478188786
P粉478188786

全部回复(1)
P粉908643611

下面的动态SQL正在构建从具有类别的参考表中的条件和总和。

project_id 总计 进行中的错误 已解决的错误 进行中的缺陷 已解决的缺陷 进行中的改进 已解决的改进
0 5 1 0 1 1 1 1
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板