簡體   English   中英

如何從一個表生成數據到另一個表?

[英]How to generate data from a table to another table?

我在數據庫中有一個名為 Employee 的表,它有 4 列,即

  • EmployeeID EmployeeName 指定報告經理

每次在 aspx 頁面中添加新記錄時,它都會更新新的詳細信息。 例子:

EID     EMPLOYEE_NAME     DESIGNATION       REPORTING_MANAGER
1        TIM COOK            CEO                   Null
2        MILLER              CTO                   TIM COOK
3        BRAD                COO                   TIM COOK
4        WILLIAM             HRD                   TIM COOK
5        JOHN                TECH MANAGER(DEV)     WILLIAM
6        WALLACE             TECH MANAGER(TEST)    WILLIAM
7        SUNDAR              SWIFT DEV             JOHN
8        PETER               SWIFT DEV             JOHN
9        STEVE               TEST ENGINEER         WALLACE

我想從上面的 table(table1) 生成 table2 中的數據,如下所示,

EID     EMPLOYEE_NAME      REPORTING_MANAGER_ID
1        TIM COOK          Null
2        MILLER            1
3        BRAD              1
4        WILLIAM           1
5        JOHN              4
6        WALLACE           4
7        SUNDAR            5
8        PETER             5
9        STEVE             6

請幫幫我。

簡單的:

  1. 創建一個存儲過程,以使用 LEFT JOIN 從 Table1 中將數據插入到 Table2 中,以在 Table2 中插入/更新 Table1 中不存在的行。

  2. 在插入新詳細信息后調用此存儲過程(我假設 Table1 中的插入或更新是通過存儲過程進行的)

您可以通過多種方式執行此操作。

使用LEFT JOIN

SELECT e.EID ,
       e.EMPLOYEE_NAME ,
       e.DESIGNATION ,
       e.REPORTING_MANAGER,
       rm.EID AS REPORTING_MANAGER_ID
FROM Employee e
LEFT JOIN Employee rm ON  rm.EMPLOYEE_NAME = e.REPORTING_MANAGER

子查詢路由:

SELECT e.EID ,
       e.EMPLOYEE_NAME ,
       e.DESIGNATION ,
       e.REPORTING_MANAGER,
       (SELECT TOP 1 rm.EID 
        FROM Employee rm 
        WHERE rm.EMPLOYEE_NAME = e.REPORTING_MANAGER) AS REPORTING_MANAGER_ID
FROM Employee e
SELECT T1.EID,
       T1.EMPLOYEE_NAME,
       T1.DESIGNATION,
       T1.REPORTING_MANAGER,
       T2.EID AS REPORTING_MANAGER_ID
FROM   EMPLOYEE T1
       LEFT JOIN EMPLOYEE T2
              ON T1.EMPLOYEE_NAME = T2.REPORTING_MANAGER 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM