0
一个专栏中,我有两个表:的SQL Server 2008:更新基于环路上的另一台
create table tblA (Pid int, Ltype varchar(2), upcoming_Ltype varchar(2))
insert into tblA (pid, ltype)
values
(123, 'A1'),
(123, 'C2'),
(567, 'B1'),
(457, 'A1')
create table tblB (Pid int, Ltype varchar(2), isactive bit)
insert into tblB (Pid, Ltype, isactive)
values
(123,'A1',1),
(123,'C2',1),
(123,'B1',1),
(123,'E2',1),
(567,'A1',1),
(567,'C2',1),
(567,'B1',1),
(567,'E2',1),
(457,'A1',1),
(457,'C2',0),
(457,'B1',1),
(457,'E2',1)
这里应注意,在TBLB,L-型永远是A1,C2,B1和E2为了让每一个的Pid 。现在,我想基于下一isactive从TBLA填充upcoming_Ltype = 1 L-型从TBLB
预期结果:
TBLA:
(123, 'A1',C2),
(123, 'C2',B1),
(567, 'B1',E2),
(457, 'A1',B1) <-- skipping C2
这是我的工作(不工作):
UPDATE tblA
SET upcoming_Ltype =
(
SELECT Ltype
FROM tblB
WHERE tblA.Pid = tblB.Pid
AND tblB.isActive = 1
AND tblB.Ltype > tblA.Ltype
)
没有订单。 – gvee
A1,C2,B1,E2是order。我们可以在临时表中分别给它们分配数字1,2,3和4。 –