Utilisation de SQL Server 2000
Table
PersonID Date
001 11-02-2009
002 11-02-2009
003 11-02-2009
001 12-02-2009
004 12-02-2009
005 12-02-2009
003 13-02-2009
005 13-02-2009
Bientôt…,
Je veux afficher tous les Personid par Date sage.
Production attendue
PersonID Date
001 11-02-2009
002 11-02-2009
003 11-02-2009
004 11-02-2009
005 11-02-2009
001 12-02-2009
002 12-02-2009
003 12-02-2009
004 12-02-2009
005 12-02-2009
001 13-02-2009
002 13-02-2009
003 13-02-2009
004 13-02-2009
005 13-02-2009
Bientôt…,
Tous les Personid doivent apparaître par date.
J'ai écrit une requête dans Access
Question
SELECT AllPossibleCardEvents.PersonId FROM ((SELECT p.PersonId, AllDates.CardEventDate FROM (SELECT DISTINCT Date FROM TMP_Cardevent2) AllDates, Tmp_cardevent1 p) AllPossibleCardEvents LEFT OUTER JOIN TMP_cardevent2 Actual ON AllPossibleCardEvents.PersonId = Actual.PersonId AND AllPossibleCardEvents.Date = Actual.Date) )
La requête d'accès ci-dessus fonctionne correctement. Mais le même résultat que je veux montrer en SQL aussi.
Comment écrire une requête en SQL?
Besoin d'aide de requête.
Réponses:
0 pour la réponse № 1SELECT A.PersonID, B.Date
FROM (SELECT DISTINCT PersonID from myTable) A,
(SELECT DISTINCT Date from myTable) B
Je n'ai pas essayé ça. Mais, cela fera un produit cartésien.
0 pour la réponse № 2
Si je comprends bien, vous voulez que chaque personne distincte soit renvoyée pour chaque date distincte.
Si oui, la requête serait
SELECT DISTINCT PersonTable.PersonId, DateTable.Date FROM Table as PersonTable
CROSS JOIN (SELECT DISTINCT Date FROM Table) AS DateTable