使用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中编写查询?
需要查询帮助。
答案 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
我没试过这个。但是,它会做笛卡尔积。