Jointure outer join ne match pas les colonnes
Bonjour,
Je suis en train de réaliser une requête SQL avec une double jointure externe.
Voici ma première vue de date :
Code:
1 2 3 4 5
|
Create View ViewAnneeMoisDemande as (
select distinct Year(d.dateCreationD) 'annee', Month(d.dateCreationD) 'mois'
from demande d right outer join (select distinct YEAR(dateCreationD) 'A', MONTH(dateCreationD) 'M' FROM demande) as m
on Year(d.dateCreationD)= m.A AND Month(d.dateCreationD)= m.M) |
Elle me renvoi une liste de dates tel que : 2014 01, 2014 02, 2014 03 -> ce sont toutes celles utilisées dans la table Demande.
Ma deuxième table est celle des Demandes qui comporte une numéro de demande, la date, et un numéro de statut.
Je veux regrouper par année et par mois (de la vue viewAnneeMoisDemande), le nombre de demande par statut.
Voici ce que j'ai écrit:
Code:
1 2 3 4 5
|
select count(Numéro), d.Année, d.Mois
from Demande d left outer join ViewAnneMoisDemande v on d.Année= v.annee AND d.Mois = v.mois
where d.Statut = 2
group by d.Année, d.Mois |
La requête me retourne le cumul des demandes pour le statut 2 par année et par mois, mais uniquement lorsque qu'il y a eut des demandes. Donc il ne m'affiche pas 0 lorsqu'il n'y a pas de demande. Alors qu'avec un outer join, si je ne me trompe pas, elle devrait me renvoyer 0 ou null pour toute les autres dates de la vue ViewAnneeMoisDemande.
Merci à ceux qui pourront m'aider :)
Dorian