我有1個包含票證信息的表格,另一個包含知識文章信息。 門票可以鏈接到相應的知識文章。如何在COUNT中包含0個結果()
在票據表(IncidentsM1)中是一列CBA_KPF_ID,它將包含文章ID或NULL。
我需要找出每一篇文章了多少次聯即使是0
表(節錄):
- INCIDENTSM1 - 票務表
- INCIDENT_ID - 票務ID
- CBA_KPF_ID - Article ID
- KMDOCUMENTM1 - 第表
- ID - 文章編號
如果我使用下面的代碼,我得到的,除了那些0鏈接的鏈接數量:
SELECT KM1.ID, COUNT(*) AS "Count"
FROM INCIDENTSM1 AS SD LEFT JOIN KMDOCUMENTM1 AS KM1 ON SD.CBA_KPF_ID=KM1.ID
GROUP BY KM1.ID
其中一個結果是ID值爲NULL,並且沒有鏈接到文章的票數。
如果我使用以下(從其他question)的代碼,我得到的與統計要麼是出現在多個行1個或0和物品ID的文章的列表:
SELECT SD.CBA_KPF_ID, ISNULL(KM."Count", 0) FROM
(SELECT CBA_KPF_ID FROM INCIDENTSM1) SD
LEFT JOIN
(SELECT ID, count(ID) as "Count" FROM KMDOCUMENTM1 GROUP BY ID) KM
ON SD.CBA_KPF_ID=KM.ID
ORDER BY "Count" DESC
是否有可能得到文章列表和他們連接了多少次,即使這個數字是0?
編輯:
我都試過下面的答案,但他們要麼未能按ID或仍然沒有顯示0值。
我只是試圖生成列表沒有0值,那麼工會的表不是在第一個語句的所有ID:這裏
(SELECT KM1.ID, COUNT(*) AS "Count"
FROM INCIDENTSM1 AS SD LEFT JOIN KMDOCUMENTM1 AS KM1 ON SD.CBA_KPF_ID=KM1.ID
GROUP BY KM1.ID)
UNION
SELECT KM.ID, 0
FROM KMDOCUMENTM1 AS KM
WHERE KM.ID NOT IN (
SELECT A.ID FROM
(SELECT KM1.ID, COUNT(*) AS "Count"
FROM INCIDENTSM1 AS SD LEFT JOIN KMDOCUMENTM1 AS KM1 ON SD.CBA_KPF_ID=KM1.ID GROUP BY KM1.ID) A
)
ORDER BY "Count" DESC
問題是一切低於UNION似乎沒有任何回報。
想這一點,但仍然沒有返回任何0值。 只是用另一次嘗試更新了問題。 –
你能告訴我一些樣本數據(你可以使用我創建的表)和預期的結果嗎? – gotqn