Affichage de toutes les dates

Affichage de toutes les dates - SQL/NoSQL - Programmation

Marsh Posté le 17-09-2009 à 12:06:54    

Bonjour,
 
je suis toujours sur Access et j'ai 2 tables :
 
Employe (Id_Emp,Nom) et Planning (ID_Pla, Date,#Id_Emp,Horaire)
 
La table planning ne prend pas toujours une valeur.
 
Exemples :
 
Employe :
1 Toto
2 Titi
 
 
Planning :  
 
1 01/06/2009 1 25
1 02/06/2009 1 25
1 04/06/2009 1 29
...
 
Par exemple ici on n'a rien pour le 3.
J'aimerai faire une sélection entre 2 dates, avec forcément une ligne par date, style :
1 01/06/2009 1 25
1 02/06/2009 1 25
1 04/06/2009 1 NULL
1 04/06/2009 1 29
 
Auriez vous une idée, sans devoir créer une autre table, comment faire en sorte que toutes les dates apparaissent (que ce soit en faisant un between ou du <= >= ou autre).
 
Merci
 
 
 
 

Reply

Marsh Posté le 17-09-2009 à 12:06:54   

Reply

Marsh Posté le 17-09-2009 à 13:17:41    

Oui, il faut faire une jointure de type outer join. La syntaxe dépend du SGBD. Par exemple en Oracle on met une étoile à côté du critère de rapprochement, alors qu'en Sybase un met un signe plus entre parenthèses. On emploie aussi une condition (decode en Oracle, iif en Acces, etc.) pour savoir si la réference externe existe ou pas. Par exemple, en Oracle, cela donnerait quelque chose du genre :

Select Planning.Date,
       Planning.Id_Emp,
       decode(Employe.Id_Emp, null, 'NULL', Planning.Horraire)
  From Employe,
       Planning
 Where Planning.Id_Emp = Employe.Id_Emp *

Reply

Marsh Posté le 17-09-2009 à 13:23:38    

Merci.
 
Le problème c'est que toutes les dates n'apparaissent pas dans planning, si on ne renseigne rien. Et il me les faudrait dans la requête finale !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed