如何按日期显示所有记录?

时间:2009-09-07 06:23:18

标签: 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

所以......,

所有Personid都应按日期显示。

我在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中编写查询?

需要查询帮助。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你希望每个不同的日期都返回每个不同的人格。

如果是,查询将是

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

答案 1 :(得分:0)

SELECT A.PersonID, B.Date
FROM (SELECT DISTINCT PersonID from myTable) A, 
(SELECT DISTINCT Date from myTable) B

我没试过这个。但是,它会做笛卡尔积。