SQL Server:基于另一个表填充表
我有两个表tblA(Pid int,Lid int,Lid int) tblB(Pid int、Lid int、isActive int) 现在,我想从tblB填充tblA.U Lid,其中下一个Lid对于相同的Pid是活动的。 tblA的预期结果:SQL Server:基于另一个表填充表,sql,sql-server,sql-update,subquery,correlated-subquery,Sql,Sql Server,Sql Update,Subquery,Correlated Subquery,我有两个表tblA(Pid int,Lid int,Lid int) tblB(Pid int、Lid int、isActive int) 现在,我想从tblB填充tblA.U Lid,其中下一个Lid对于相同的Pid是活动的。 tblA的预期结果: (123, 10,13), (345, 10,11), (567, 11,12), (457, 11,13) 谢谢 您可以使用聚合函数填充该表 大概是这样的: create table new_table as select Pid, min(
(123, 10,13),
(345, 10,11),
(567, 11,12),
(457, 11,13)
谢谢 您可以使用聚合函数填充该表 大概是这样的:
create table new_table as
select Pid, min(Lid), max(Lid)
where tblB.isActive = 1
from tblB group by Pid;
这演示了以下查询:
UPDATE tblA
SET upcoming_Lid =
(
SELECT Lid
FROM tblB
WHERE tblA.Pid = tblB.Pid
AND tblB.isActive = 1
AND tblB.Lid > tblA.Lid
)
这个问题似乎离题了,因为它没有显示任何尝试。询问代码的问题必须表现出最小的努力。更新你的问题,用你已经尝试过的或者你对你的问题所做的研究。如果我把tblB中的Lid作为varchar(2),代码会有什么不同?所以,对于Lid 10,我有A1,11,我有Y5,12,我有B3?谢谢
create table new_table as
select Pid, min(Lid), max(Lid)
where tblB.isActive = 1
from tblB group by Pid;
UPDATE tblA
SET upcoming_Lid =
(
SELECT Lid
FROM tblB
WHERE tblA.Pid = tblB.Pid
AND tblB.isActive = 1
AND tblB.Lid > tblA.Lid
)