Utilisation de SQL Server 2005Comment afficher une valeur pour les dates?
Database1
Tableau 1
ID Date Status
001 23-02-2009 Worked
001 24-02-2009
001 25-02-2009
001 26-02-2009 Worked
002 24-02-2009 Worked
002 25-02-2009
002 26-02-2009
002 27-02-2009
002 28-02-2009 Worked
...,
Database2
Tableau 2
ID FromDate ToDate Reason
001 24-02-2009 25-02-2009 ShortLeave
002 25-02-2009 27-02-2009 MedicalLeave
...,
Essayé Recherche
SELECT DISTINCT t1.ID,
t1.Date,
CASE WHEN t2.ID IS NULL THEN t1.Status ELSE 'Leave' END AS Workedtime
from Database1.dbo.table1 AS t1 LEFT OUTER JOIN Database2.dbo.table2 AS t2
ON t1.ID COLLATE DATABASE_DEFAULT = t2.ID
AND t1.Date BETWEEN t2.FromDATE AND t2.ToDATE
Il doit afficher une raison de table2 au lieu de congé
Sortie
prévue ID Statut Date de
001 23-02-2009 Worked
001 24-02-2009 ShortLeave
001 25-02-2009 ShortLeave
001 26-02-2009 Worked
002 24-02-2009 Worked
002 25-02-2009 MedicalLeave
002 26-02-2009 MedicalLeave
002 27-02-2009 MedicalLeave
002 28-02-2009 Worked
. ..,
Il devrait donc afficher une raison au lieu de quitter où table1.id = table2.id et t1.date entre t2.fromdate et t2.todate.
Comment modifier ma requête?
Besoin de requête Aide
Dans le tableau 2, si l'ID de la deuxième entrée est 002? –