2015-05-13 37 views
0

我有一個Code_Master表,其中有3000多個代碼。這些代碼被嵌入到我所有的表格中,但作爲不同的列名...如何根據同一列顯示來自Code_Master表的多個代碼

例如:我有一張名爲Notes的表格,其中包含所有學生帳戶的傳入呼叫記錄(所有學生帳戶信息保存在表中:CA_Prof )。我在這個表中有3列顯示來自Code_Master表的代碼。我有一個Note_Category列(代碼1-5),一個Caller_Mood列(代碼6-10)和一個Caller列(代碼11-15)。

在CA_Prof表中,我有一個名爲C_ID(Student Acct#)和CA_Id(Sub Account(這是他們的第一,第二,第三個acct等)的列。我還有一個列S_Id(學校ID號爲學校他們參加)

我希望能夠顯示:

Note_Category,Code_Description(從Code_Master),Caller_Mood,Code_Description(從Code_Master),來電,Code_Description(從Code_Master)

但僅限於記錄Notes記錄中找到的C_ID和CA_ID與CA_Prof中的C_Id和CA_Id匹配

我無法知道如何使用來自同一個Code_Master表的代碼對不同列進行此操作。

以下是我有:

SELECT 
    can.C_Id, 
    can.CA_Id, 
    can.Note_No, 
    can.Caller_Mood, 
    cm.Code_Desc, 
    can.Caller, 
    can.Note_Category, 
    can.How_Contacted_Code, 
    can.Note, 
    can.Insert_Time, 
    can.Insert_User 
FROM Notes can (NOLOCK) 
INNER JOIN CA_Prof cap 
    ON can.C_Id = cap.C_Id 
    AND can.CA_Id = cap.CA_Id 
Inner Join Code_Mstr cm on can.Caller_Mood=cm.Code_Id 
WHERE cap.S_Id = 8027 
    AND can.Insert_Time >= '05/01/2014' 
    AND can.Insert_Time <= '01/01/2015' 
    AND can.How_Contacted_Code = '331' 
ORDER BY can.Note_Cat_Code ASC; 

回答

0

你可以加入到同一個表不止一次。我想你想要的東西是這樣的:

select 
    ... 
    n.Note_Category 
    nc.Code_Description as Note_Category_Description, 
    ... 
    n.Caller_Mood, 
    cm.Code_Description as Caller_Mood_Description, 
    ... 
from Notes n 
join Code_Master nc on nc.Code_Id = n.Note_Category 
join Code_Master cm on cm.Code_Id = n.Caller_Mood 
... 
+0

這工作很好!謝謝。我沒有意識到我可以用不同的別名多次加入同一張表。我也可以爲不同類型的聯接做到這一點嗎?說內心和左邊? –

+0

是的,你可以。請注意,'inner join'意思就像'join'一樣。順便說一句,如果這個答案解決了你的問題,你可以通過點擊它左邊的刻度標記來將它標記爲「接受」。 – Blorgbeard

相關問題