我正在尝试将类型为y的记录分配为父ID。如果存在类型x的记录具有相同的位置,或者该位置比类型y记录小5以内,并且它在同一组内,那么我需要将该记录ID分配为父ID。可能有多个x记录满足这个条件所以我需要采取最近的。
要清楚,如果类型为Y且目标为x,则只能设置parentid。类型X不能有parentid。
希望这些前后表能够展示我想要做的事情。
在
在
我打算在代码中执行此操作,但希望可以在SQL中执行此操作。如果影响答案,我正在使用SQL服务器?
非常感谢任何帮助。
干杯
吉姆
答案 0 :(得分:1)
我会用相关的子查询来解决这个问题:
update t
set ParentId = (select top 1 id
from table t2
where t2."type" = 'x' and
t2."group" = t."group"
t2.location between t.location - 5 and t.location
order by location
)
from table t
where "type" = 'y';