【问题标题】:How to join a table & pull results for additional join如何加入表格并拉取结果以进行额外的加入
【发布时间】:2019-04-16 19:43:33
【问题描述】:

我正在尝试通过 SSN 提取一组员工的所有帐户。同时还通过其 FA 编号提取所有帐户(包括他们管理的帐户以及属于他们自己的帐户)。

这是我到目前为止的代码。 SSN 加入工作正常,但我在最后一次加入时遇到问题,将 emp_id 连接到 FA_emp_id

SELECT [Employee List].ID, 
[Employee List].FirstName, 
[Employee List].LastName, 
dbo_person.prsn_ssn_id, 
dbo_person.prsn_emp_id, 
Left([dbo_account_holder]![account_id],8) AS Account, 
dbo_account_holder.holder_nickname, 
dbo_account_holder.holder_reference_name
FROM ((([Employee List] LEFT JOIN dbo_person ON [Employee List].emp_id = dbo_person.prsn_emp_id) 
LEFT JOIN dbo_account_holder ON dbo_person.prsn_ssn_id = dbo_account_holder.holder_ssn_id) 
LEFT JOIN dbo_account ON dbo_account_holder.account_id = dbo_account.account_id)
LEFT JOIN  dbo_account ON [Employee List].emp_id = dbo_account.fa_emp_id
WHERE (((dbo_account.date_account_closed) Is Null));

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    尽量避免unsuful()

    并且不要在 where 条件下使用左连接表的列 .. 如果你这样做 .. 那么这个条件作为内部连接工作 将条件添加到相关的 on 子句中

    SELECT [Employee List].ID, 
    [Employee List].FirstName, 
    [Employee List].LastName, 
    dbo_person.prsn_ssn_id, 
    dbo_person.prsn_emp_id, 
    Left([dbo_account_holder]![account_id],8) AS Account, 
    dbo_account_holder.holder_nickname, 
    dbo_account_holder.holder_reference_name
    FROM [Employee List] 
    LEFT JOIN dbo_person ON [Employee List].emp_id = dbo_person.prsn_emp_id
    LEFT JOIN dbo_account_holder ON dbo_person.prsn_ssn_id = dbo_account_holder.holder_ssn_id
    LEFT JOIN dbo_account ON dbo_account_holder.account_id = dbo_account.account_id
    LEFT JOIN  dbo_account ON [Employee List].emp_id = dbo_account.fa_emp_id 
                        AND  dbo_account.date_account_closed Is Null;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 2014-09-02
      相关资源
      最近更新 更多