不同的代码不起作用 SQL 服务器

Distinct code wont work SQL Server

SELECT DISTINCT 
    U.Unit_ID, P.Plant_ID, P.Project_NR, U.Key_code_list,  
    S.Status_type, Kc.Key_codes4
FROM 
    Plant as P
INNER JOIN 
    Unit as U ON P.Plant_NR = U.Plant_NR
INNER JOIN 
    [dbo].[Key_code_list] as Kcl ON P.Project_NR = Kcl.Project_NR
INNER JOIN 
    Status_codes as S ON S.Status_nr = Kcl.Status
INNER JOIN 
    Key_codes as Kc ON Kc.Key_code_ID = Kcl.Key_code_list_ID

我有这段代码,它不会给我想要的结果。我知道这可能很简单,但我已经用头撞墙一个小时了,我想为什么不问问你们呢。

现在的结果是:

Unit_ID | Plant_ID | Project_NR | Key_code_list | Status_type | Key_code_4 | Key_code _ID
-----------------------------------------------------------------------------------------------
MEOD    | SM       | 114015     | 4             | Assigned    | AC49       | 11  | 
MLO     | SM       | 114015     | 4             | Assigned    | AC49       | 11  |
MEOD    | SM       | 114015     | 4             | Assigned    | AC47       | 12  | 
MLO     | SM       | 114015     | 4             | Assigned    | AC47       | 12  |

结果现在是结果的两倍,但这是不正确的。我希望只得到一次答案。有人可以帮帮我吗?

期望的结果是:

  MEOD    | SM       | 114015     | 4             | Assigned    | AC49       | 12  | 
  MLO     | SM       | 114015     | 4             | Assigned    | AC47       | 11  |



SELECT * FROM dbo.Key_Code_List WHERE Project_NR = '114015'

Key_code_list | Status | Plant_ID | Textfield_unit | Unit_ID | Key_code_list_ID | Project_NR
4             | 2      | SM       | NULL           | MLO     | 11               | 114015
4             | 2      | SM       | NULL           | MEOD    | 12               | 114015

您在 Key_Code_List table 的联接中缺少 Unit_ID 字段。

SELECT DISTINCT 
    U.Unit_ID, P.Plant_ID, P.Project_NR, U.Key_code_list,  
    S.Status_type, Kc.Key_codes4
FROM 
    Plant as P
INNER JOIN 
    Unit as U ON P.Plant_NR = U.Plant_NR
INNER JOIN 
    [dbo].[Key_code_list] as Kcl ON 
        P.Project_NR = Kcl.Project_NR AND 
        U.Unit_ID = Kcl.Unit_ID -- add this to the JOIN condition
INNER JOIN 
    Status_codes as S ON S.Status_nr = Kcl.Status
INNER JOIN 
    Key_codes as Kc ON Kc.Key_code_ID = Kcl.Key_code_list_ID