Bonjour,

Je dispose de ces deux tables :

Calendrier
 datejour (timestamp)  
  10/01/2010 00:00:00  
  11/01/2010 00:00:00  
  12/01/2010 00:00:00  
...
  20/01/2010 00:00:00  
Donnescarto
  datej (timestamp)  Montant (int)  
  10/01/2010 00:00:00  12  
  12/01/2010 00:00:00  11   
...
  20/01/2010 00:00:00  3  
Vous noterez qu'il n'y a pas de ligne pour le 11 janvier.

Je cherche à créer une requête qui me permettrait d'afficher tous les enregistrements de la table calendrier qui est complête (tous les jours de l'année) avec les éventuels enregistrements de la table donneescarto pour laquelle certaines données journalières n'existent pas (certains jours ne sont pas renseignés) et afficher un montant NULL à la place.

ça devrait donc permettre d'afficher un résultat qui ressemble à ça :
 datejour (timestamp)   Montant (int)  
  10/01/2010 00:00:00   12  
  11/01/2010 00:00:00   11  
  12/01/2010 00:00:00   NULL  
...
  20/01/2010 00:00:00   3  
J'ai essayé avec la requete suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT c.datejour, d.Montant
  FROM calendrier c
       LEFT OUTER JOIN  donneesCarto d ON c.datejour = d.datej
 WHERE YEAR(c.datejour) = 2010
Or, ma requête me retourne
 datejour (timestamp)   Montant (int)  
  10/01/2010 00:00:00   12  
  11/01/2010 00:00:00   11  
...
  20/01/2010 00:00:00   3  
J'imagine que le problème vient de la jointure. Auriez vous une idée de ce qu'il faudrait changer pour que cela retourne ce que je recherche ?

Par avance, merci de vos propositions.

PS : J'ai simplifié à l'extrême la requête car il y a pas mal de champs calculés.