/ / Как да покажа целия запис по дата? - sql, sql-сървър, tsql, sql-сървър-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 по дата.

Очакван резултат

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