表A:ID(身份)名称状态StateTimestamp课程
1 ABC C 1/1/2001?
2 ABC A 1/5/2001 OO
3 ABC B 2/3/2001 OO
4 ABC A 2/4/2001 PP
5 ABC D 2/5/2001 PP
6 ABC A 2/12/2001 QQ
7 ABC A 2/18/2001 RR
8 ABC z 2/20/2001?
9 XYZ C 1/1/2001?
10 XYZ A 1/14/2001?
11 XYZ D 1/16/2001?
12 XYZ A 1/17/2001?
13 XYZ z 1/31/2001?
ID是一个唯一的列。每个州都属于名称,并且具有与增量顺序相关联的时间戳。 根据State-A更新每行的课程,以便在状态A第一次出现名称更新时 过程为'OO',当状态A第二次出现在名称更新过程'PP'时,当状态C出现第三次更新时 当然是'QQ'。并且状态A的重复次数可以是无限的。 并且所有州的课程都有日期>状态A和日期<连续状态A - 即在1待定状态之后 并且在跟随待决状态之前(即上表中的B,2/3/2001)必须与课程更新相同 预先形成一个状态(即OO)。您的想法将不胜感激。
创建表格为: 创建表TABLEA ( 身份识别1,1 ,名称varchar(155) ,州varchar(155) ,StateTimestamp日期时间 ,课程varchar(155) )
填充为: 插入表格值 ('ABC','C','1/1/2001','?') ,('ABC','A','1/5/2001','?') ,('ABC','B','2/3/2001','?') ,('ABC','A','2/4/2001','?') ,('ABC','D','2/5/2001','?') ,('ABC','A','2/12/2001','?') ,('ABC','A','2/18/2001','?') ,('ABC','z','2/20/2001','?') ,('XYZ','C','1/1/2001','?') ,('XYZ','A','1/14/2001','?') ,('XYZ','D','1/16/2001','?') ,('XYZ','A','1/17/2001','?') ,('XYZ','z','1/31/2001','?')
期望的结果: 表A: ID(身份)名称状态StateTimestamp课程 1 ABC C 1/1/2001? 2 ABC A 1/5/2001 OO 3 ABC B 2/3/2001 OO 4 ABC A 2/4/2001 PP 5 ABC D 2/5/2001 PP 6 ABC A 2/12/2001 QQ 7 ABC A 2/18/2001 RR 8 ABC z 2/20/2001 RR 9 XYZ C 1/1/2001 XX 10 XYZ A 1/14/2001 YY 11 XYZ D 1/16/2001 YY 12 XYZ A 1/17/2001 ZZ 13 XYZ z 1/31/2001 ZZ