2014-01-19 100 views
0

我想分配類型爲y的父記錄的記錄。如果有一個類型爲x的記錄具有相同的位置,或者該位置與y類型記錄相差5以內,並且它位於同一組中,那麼我需要將該記錄ID分配爲父ID。可能有多個x記錄符合這個條件,所以我需要走近。SQL - 同組內最近的記錄

要清楚我只能設置parentid如果類型是Y和目標是類型x。類型X的不能有一個parentid。

希望這些表格之前和之後將展示我正在嘗試做什麼。

之前

enter image description here

enter image description here

我要做到這一點的代碼,但希望它應該能夠做到這一點的SQL。如果這影響答案,我正在使用SQL服務器?

非常感謝任何幫助。

乾杯

吉姆

回答

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';