/ / Як відобразити всі записи за датою мудрого? - sql, sql-server, tsql, sql-server-2000

Як відобразити всі записи за датою? - sql, sql-server, tsql, sql-server-2000

Використання SQL Server 2000

Таблиця

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

Так далі…,

Я хочу відобразити весь Персонаж за датою розумним.

Очікуваний результат

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

Так далі…,

Всі особи повинні з'являтися за датою.

Я написав запит у Access

Запит

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) )

Над запитом доступу працює відмінно. Але той же результат хочу і показати в SQL.

Як написати запит в SQL?

Потрібна довідка щодо запитів.

Відповіді:

0 для відповіді № 1
SELECT A.PersonID, B.Date
FROM (SELECT DISTINCT PersonID from myTable) A,
(SELECT DISTINCT Date from myTable) B

Я не спробував цього. Але це зробить декартову продукцію.


0 для відповіді № 2

Якщо я розумію це правильно, ви хочете, щоб кожен окремий персонаж повертався на кожну окрему дату.

Якщо так, то запит буде

SELECT DISTINCT PersonTable.PersonId, DateTable.Date FROM Table as PersonTable
CROSS JOIN (SELECT DISTINCT Date FROM Table) AS DateTable