Sql server 2012 基于当前行和上一行在SQL列中保留旧值和新值
我的桌子应该是这样的: 我的要求是我必须添加一个名为ChangeType的新列,该列应根据Phasechange进行计算 如果第一行phasechange为null,则应为“基线”。如果有值,则应为phasechange。在本例中,对于修订号=2,phasechange=1,则changetype=phasechange作为修订号=1的先前值,phasechange为null 然后对于修订号=3,phasechange=null,因此变更类型应再次为phasechange 然后对于revisionno=4,phasechange=3,因此changeType也应该是phasechange(对于revisionno=3,它是空的) 对于(5,6)阶段变更=3中的修订号,与previos版本(4)相同,因此变更类型应基线化Sql server 2012 基于当前行和上一行在SQL列中保留旧值和新值,sql-server-2012,Sql Server 2012,我的桌子应该是这样的: 我的要求是我必须添加一个名为ChangeType的新列,该列应根据Phasechange进行计算 如果第一行phasechange为null,则应为“基线”。如果有值,则应为phasechange。在本例中,对于修订号=2,phasechange=1,则changetype=phasechange作为修订号=1的先前值,phasechange为null 然后对于修订号=3,phasechange=null,因此变更类型应再次为phasechange 然后对于revisio
ProjectID DocumentNo RevisionNo PhaseChange ChangeType
102176-001 1 1 NULL Baselined
102176-001 2 2 1 Phasechange
102176-001 3 3 NULL Phasechange
102176-001 4 4 3 Phasechange
102176-001 5 5 3 Baselined
102176-001 6 6 3 Baselined
示例代码:
Create table #temp(
ProjectID varchar(35),
Documentno int,
Revisionno int,
PhaseChange int,
ChangeType varchar(35))
insert into #temp values ( '102176-001', 1, 1, NULL,NULL)
insert into #temp values ( '102176-001', 2, 2, 1,NULL)
insert into #temp values ( '102176-001', 3, 3, NULL,NULL)
insert into #temp values ( '102176-001', 4, 4, 3,NULL)
insert into #temp values ( '102176-001', 5, 5, 3,NULL)
insert into #temp values ( '102176-001', 6, 6, 3,NULL)
欢迎使用StackOverflow:如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,并单击编辑器工具栏上的“代码示例”按钮(
{}
),以精确地格式化和语法突出显示它!为什么您的数据中存在如此多的重复?很抱歉,在编辑时出现了重复。现在数据已更正,您使用的是哪种DBMS?(“SQL”只是一种查询语言,而不是DBMS产品)有人能帮我尽快完成吗?我被这个问题困住了