映射SQL表

映射SQL表,sql,Sql,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

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行填充的,因此它们具有相同的匹配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   
请给我写一个问题,我已经尝试了很多东西,但听起来像是一个简单的解决方案。
非常感谢。

不。你需要尝试一些东西,然后带着你遇到的困难来到这里。请至少展示你尝试过的许多东西中的一些东西。插入到B Cust_ID,p_ID,p_Name选择Cust_ID,p_ID,p_Name从a WHERE Issue_Date 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