Sto eseguendo un conteggio in base a un intervallo di date. Attualmente la query restituisce il risultato corretto ma ho bisogno di ulteriori informazioni. Nella sua forma attuale, la query mostra l'elemento con il conteggio corretto. Tuttavia ho bisogno di mostrare tutti gli elementi, anche se il loro conteggio è zero per l'intervallo di date specificato.SQL - Restituzione di tutte le righe anche se il conteggio è zero per la voce
Ecco il codice SQL:
INSERT INTO @CreationCount (BaselineID, Name)
SELECT distinct [BaselineID],[Name]
FROM [Baseline_INFO]
DECLARE @ReqType TABLE (Type nvarchar(128))
INSERT INTO @ReqType (Type)
SELECT DISTINCT Tree.Type as 'Requirement Type'
FROM [TREE]
INNER JOIN [Project_INFO] ON [Project_INFO].[ProjectID]=[Tree].[Project_ID]
INNER JOIN [Baseline_INFO] ON [Baseline_INFO].[BaselineID]=[Tree].[Baseline_ID]
WHERE [Project_INFO].[Name] = 'Address Book' AND [Baseline_INFO].[Name] = 'Current
Baseline'
Group By Tree.Type
SELECT Tree.Type as 'Requirement Type', COUNT(Tree.Type) as 'Number in Creation Range'
FROM [Tree]
INNER JOIN @ReqType As RT on RT.Type = Tree.Type
INNER JOIN [Project_INFO] ON [Project_INFO].[ProjectID]=[Tree].[Project_ID]
INNER JOIN @CreationCount AS CCount ON CCount.BaselineID=Tree.Baseline_ID
WHERE [Project_INFO].[Name] = 'Address Book' AND CCount.Name = 'Current Baseline'
AND [Tree].[creationDate] >= ('2010-01-01') and [Tree].[creationDate] < ('2020-01-01')
GROUP BY tree.Type
Quando eseguo questa query ottengo il seguente risultato:
https://dl.dropbox.com/u/17234826/SQLresult.png
Questo risultato è corretto però ho bisogno di tutti i tipi di requisiti per essere lista , anche se non ci sono requisiti nell'intervallo di creazione, ovvero
https://dl.dropbox.com/u/17234826/SQLresult1.png
Ho provato a utilizzare vari join, IFNULL e ISNULL, ma non ho niente da lavorare.
Se qualcuno potesse indicarmi la giusta direzione lo apprezzerei.
uso "outer join". – Ben