1: CREATE TABLE Employees(
2: EmployeeID INT NOT NULL,
3: Version INT NOT NULL,
4: CreateDate DATETIME NULL,
5: CONSTRAINT pk_Employees PRIMARY KEY CLUSTERED
6: (
7: [EmployeeID] ASC,
8: [Version] ASC
9: ))
10: GO
11: INSERT INTO Employees VALUES(1,0,'03/10/2000')
12: INSERT INTO Employees VALUES(1,1,'03/16/2000')
13: INSERT INTO Employees VALUES(1,2,'03/19/2000')
14: INSERT INTO Employees VALUES(1,3,'03/18/2000')
15: INSERT INTO Employees VALUES(1,4,'03/17/2000')
16: INSERT INTO Employees VALUES(2,0,'02/10/2000')
17: INSERT INTO Employees VALUES(2,1,'02/11/2000')
18: INSERT INTO Employees VALUES(2,2,'02/18/2000')
19: INSERT INTO Employees VALUES(3,0,'03/25/2000')
20: INSERT INTO Employees VALUES(3,1,'03/23/2000')
21: INSERT INTO Employees VALUES(3,2,'03/26/2000')
22: INSERT INTO Employees VALUES(3,3,'03/30/2000')
23: INSERT INTO Employees VALUES(4,0,'08/19/2000')
24: INSERT INTO Employees VALUES(4,1,'08/20/2000')
25: INSERT INTO Employees VALUES(4,2,'08/23/2000')
26: INSERT INTO Employees VALUES(4,3,'08/24/2000')
27: GO
28: SELECT *,
29: (SELECT
30: CASE WHEN (SUM(CASE WHEN B.CreateDate<C.CreateDate THEN 0
31: ELSE 1
32: END))>=1 THEN 1
33: ELSE 0
34: END AS IsNotProper
35: FROM Employees B CROSS JOIN
36: Employees C
37: WHERE B.EmployeID=A.EmployeID
38: AND C.EmployeID=A.EmployeID
39: AND B.Version<>C.Version
40: AND B.Version<C.Version)
41: AS [OutOfOrder]
42: FROM Employees A