-4

SQL Server 2012: テーブル A があります (Cust_ID INT 、P_ID UNIQUE INT、P_Name、Match_ID、Issue_Date)

Cust_ID   P_ID   P_Name  Match_ID  Issue_Date
1         214    J5        1       2009-01-01
1         478    U3        1       2013-05-02 
1         258    21        2       2003-04-05
1         369    65        2       2013-05-02
2         235    69        1       2011-05-09
2         897    36        1       2013-05-02

基本的に、行 2、4、および 6 は行 1、3、および 5 から入力されるため、同じ Match_Id を持ち、2、4、6 は今日の日付を持ちます。次のようにマッピングテーブルを作成したい:

テーブル A (CustID、P_ID、P_Name、New_P_ID、New_P_Name) があります。

Cust_ID   P_ID   P_Name   New_P_ID   New_P_Name
1         214     J5        478        U3   
1         258     21        369        65   
2         235     69        897        36   

質問を書いてください。私は多くのことを試しましたが、簡単な解決策のように思えます。本当にありがとう。

4

1 に答える 1

0
   INSERT INTO #B  (Cust_ID ,   P_ID ,   P_Name, Match_ID )
    SELECT cust_ID , P_ID, P_Name, Match_ID from #A WHERE Issue_Date < GETDATE()
    UPDATE #B
    SET New_P_ID = NEW
    FROM ( Select New_P_ID, new = #A.P_Id from #B INNER JOIN #A ON #A.Cust_ID = #B.Cust_ID AND #A.Match_ID = #B.Match_ID AND  #A.P_ID <> #B.P_ID  ) #B

    UPDATE #B
    SET New_P_Name = NEW
    FROM ( Select New_P_Name, new = #A.P_Name from #B INNER JOIN #A ON #A.Cust_ID = #B.Cust_ID AND #A.Match_ID = #B.Match_ID AND  #A.P_ID <> #B.P_ID  ) #B
于 2013-05-02T22:52:00.830 に答える