Bonjour,
Je suis en train de réaliser une requête SQL avec une double jointure externe.
Voici ma première vue de date :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci à ceux qui pourront m'aider
Dorian
Partager