无法正确获取MS Access SQL语句W /嵌套连接到函数

时间:2015-07-26 20:08:49

标签: sql ms-access left-join outer-join

首先我要说的是,我已经在网上搜索过这方面的帮助,尝试与教授搞清楚并使用了数据库系统教科书,但仍然没有让它正常工作。我正在尝试完成这个数据库,作为我正在进行的数据库管理课程的最终项目,但它也适用于工作中的实际使用。我的团队目前正在为最终用户创建临床系统访问权限。当我们收到请求表时,它包括“ServiceNow Position”(A列)和“ServiceNow Role”(B列)。然后我的团队必须参考我试图附上的电子表格,以找出它与临床系统中的相关性(C列)。电子表格的行还指示用户帐户接收的用户组织(列F)和用户组(列G)的内容(如果有)。我在修改SQL语句之前包含了表之间关系的屏幕截图,因为一旦外部联接到位,关系就不会说明。

这里的想法是我将始终获得ServiceNow角色和位置,它将始终与“Cerner_HNA_Positions”表中的一行相关联。我不一定总是有User_Group或Organizations,但是当我拥有它们时,我可能分别有2个和4个。

relationships

我的目标是获得一个正常运行的查询,然后在此基础上创建一个表单,以便谁可以使用工作帐户创建可以插入ServiceNow位置和角色,并返回“Cerner_HNA_Positions.HNA_Position”的内容和任何相关的用户组和组织。以下是我在没有语法错误的情况下运行的最接近的SQL语句。但是,这会返回每个HNA_User_Group和HNA_Org,即使它返回的HNA_Position行没有分配任何HNA_User_Group或Orgs。我确定这与我已经完成左连接这一事实有关,但我的目标是确保我看到HNA_Position。任何人都可以帮我这个吗?

SELECT DISTINCT Cerner_HNA_Positions.HNA_Position,
       Cerner_HNA_Positions.Like_User, 
       Cerner_HNA_Positions.Physician, 
       Cerner_HNA_Positions.Add_Resources, 
       Cerner_HNA_User_Groups.*, 
       Cerner_HNA_Organizations.*, 
       [Service Now Position Name].Service_Now_Position, 
       [ServiceNow Role].Service_Now_Role
  FROM Cerner_HNA_User_Groups, 
       Cerner_HNA_Organizations, 
       [ServiceNow Role] 
             INNER JOIN ([Service Now Position Name] 
             INNER JOIN Cerner_HNA_Positions 
                 ON [Service Now Position Name].Service_Now_Position_ID = 
                               Cerner_HNA_Positions.Service_Now_Position_ID) 
                 ON [ServiceNow Role].Service_Now_Role_ID = 
                               Cerner_HNA_Positions.Service_Now_Role_ID
WHERE ((([Service Now Position Name].Service_Now_Position)="CIS - PowerChart") 
  AND (([ServiceNow Role].Service_Now_Role)="Resident"));

上面引用的电子表格:https://www.dropbox.com/s/1vreampypo17lcd/Positions_Roles%20Sheet.xlsx?dl=0

0 个答案:

没有答案