如何根据同一列

时间:2015-05-13 03:04:54

标签: sql sql-server

我有一个Code_Master表,它有3000多个代码。这些代码嵌入在我的所有表中,但是作为不同的列名...

示例:我有一个名为Notes的表,其中包含所有学生帐户的来电记录(所有学生帐户信息保存在表格中:CA_Prof)。我在此表中有3列显示Code_Master表中的代码。我有一个Note_Category列(代码1-5),一个Caller_Mood列(代码6-10)和一个Caller列(代码11-15)。

在CA_Prof表中,我有一个名为C_ID(学生帐号#)和CA_Id(子帐号(这是他们的第一,第二,第三个帐号等)的列。我还有一个列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;

1 个答案:

答案 0 :(得分:0)

您可以多次加入同一张桌子。我想你想要这样的东西:

110022 // origin index set A
001122 // origin index set B