2017-05-05 121 views
0

表1:MSISDN表記錄插入一個

----------------------------- 
ID  MSISDN  Number 
----------------------------- 

表2:帳戶管理器表

----------------------------------------------------------- 
ID Account Manager Name Account Manager Email Count 
----------------------------------------------------------- 

表3:分配表

--------------------------------------------------------------------------------- 
ID Account Manager ID Account Manager Name Account Manager Email Count 
--------------------------------------------------------------------------------- 

每當MSISDN表中有新條目時,我想自動插入MSISDN_Number以及來自Account Manager Table INTO Assignment Table的ID,Account Manager Name,Account Manager Email。 在「帳戶管理器表」中有一個條件,我希望只選擇「帳戶管理器表」中的「計數」列下的最低計數記錄。

我的方法: 1.要從客戶經理表獲取詳細信息最低計數:

SELECT TOP 1 AccountManager_Table.[ID], AccountManager_Table.[Account Manager Name], AccountManager_Table.[Account Manager Email] 
    FROM AccountManager_Table 
    Where AccountManager_Table.[Count] =(SELECT MIN(Count) from AccountManager_Table); 

2.Not工作INSERT INTO查詢:

INSERT INTO Assignment_Table ([Account Manager ID], [Account Manager Name], [Account Manager Email],[MSISDN No]) 
Values(
    (SELECT TOP 1 AccountManager_Table.[ID], AccountManager_Table.[Account Manager Name], AccountManager_Table.[Account Manager Email] 
    FROM AccountManager_Table 
    WHERE (((AccountManager_Table.Count)=(SELECT MIN(Count) from AccountManager_Table))) 
), 
    (SELECT MSISDN_Table.[MSISDN Number] 
    FROM MSISDN_Table 
    WHERE ID = (SELECT MAX(ID) FROM AccountManager_Table) 
) 
); 

我想插入MSISDN和賬戶經理詳細信息在作業表together.Please幫助:( 謝謝。

回答

0

您需要使兩個你的SELECT語句變成單個SELECT語句。

看看如何做一個JOIN:

https://www.w3schools.com/sql/sql_join.asp

而且,你的第三個表沒有了MSISDN號碼一欄,所以你必須補充的是列。輸入到表中的列需要匹配表中存在的列。

+0

感謝您的回覆,是的,有一列msisdn在工作表中,我錯過了above.I假設我不能使用連接becoz沒有什麼共同的帳戶管理器和MSISDN表。我想要的是:無論何時MSISDN表中插入新的MSISDN,它都應該分配給帳戶管理器表中具有最低計數的經理,並且所有管理員詳細信息以及MSISDN都應位於分配表中。 –

+0

有幾種方法可以做到這一點。我會執行一個2步驟,在其中插入帳戶管理器ID,然後讓另一個執行更新到MSISDN字段的進程。另外,我建議不要將「客戶經理姓名」和「客戶經理電子郵件」放入第三個表格中,因爲這純粹是數據冗餘,可能不同步。 –