Sql server 返回值更改的每个日期
我有一张带有PersonID、TeamID和DateEffective的桌子。我想返回每个人更换团队的最早日期。一个人可能会重新回到以前分配给他的团队Sql server 返回值更改的每个日期,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我有一张带有PersonID、TeamID和DateEffective的桌子。我想返回每个人更换团队的最早日期。一个人可能会重新回到以前分配给他的团队 Create Table PHistory (PersonID INT, TeamID VARCHAR(8), DateEffective datetime) Insert INTO PHistory Values (1, 'TeamA', '2017-07-01'), (1, 'TeamA', '2017
Create Table PHistory
(PersonID INT,
TeamID VARCHAR(8),
DateEffective datetime)
Insert INTO PHistory
Values (1, 'TeamA', '2017-07-01'),
(1, 'TeamA', '2017-07-02'),
(1, 'TeamB', '2017-07-03'),
(1, 'TeamA', '2017-07-04'),
(2, 'TeamA', '2017-07-01'),
(2, 'TeamA', '2017-07-02'),
(2, 'TeamA', '2017-07-03'),
(2, 'TeamA', '2017-07-04')
我希望查询返回:
1 | TeamA | 2017-07-01
1 |“团队B”| 2017-07-03
1 | TeamA | 2017-07-04
2 | TeamA | 2017-07-01
我曾经和敏混在一起,但这并不能解决人们可以回到老球队的问题
我看到它使用了一个窗口函数,但它只返回最新的记录,我需要查看所有团队更改,但我看不到如何使其适应我的需要。这里有一种使用行号的方法 输出
1 2017-07-01 00:00:00.000
1 2017-07-03 00:00:00.000
1 2017-07-04 00:00:00.000
2 2017-07-01 00:00:00.000
太棒了,谢谢。
1 2017-07-01 00:00:00.000
1 2017-07-03 00:00:00.000
1 2017-07-04 00:00:00.000
2 2017-07-01 00:00:00.000