Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:基于另一个表填充表_Sql_Sql Server_Sql Update_Subquery_Correlated Subquery - Fatal编程技术网

SQL Server:基于另一个表填充表

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(

我有两个表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(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 
)