標題重寫為:實作SQL查詢的動態化
P粉478188786
P粉478188786 2023-09-06 15:20:57
0
1
519

我有以下的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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!