2016-11-01 6 views
0

次のコードでは、意図したとおりに動作します:SQL - 選択フィールドは、レコードに応じて、書くこと

SELECT Sessions.*, Register.EmailAddress AS TeamleadAddress 
FROM Register, Employees INNER JOIN Sessions ON Employees.EmpNumber = Sessions.EmpNumber 
WHERE (((Register.Username)=[Employees].[Teamlead])); 

は私も同じクエリに必要な他の列があります:悲しいこと

Register.EmailAddress AS QualityAddress WHERE ((Register.Username)=[Employees].[Quality])); 

私は本当にしないでください自分でそれを理解することができます...事前に感謝!

答えて

2

JOINRegisterが必要です。

SELECT s.*, rtl.EmailAddress AS TeamleadAddress, rq.EmailAddress 
FROM ((Sessions as s LEFT JOIN 
     Employees as e 
     ON e.EmpNumber = s.EmpNumber 
    ) LEFT JOIN 
     Register as rtl 
     ON rtl.UserName = e.Teamlead 
    ) LEFT JOIN 
    Register as rq 
    ON rq.UserName = e.Quality; 

これはLEFT JOINを使用するため、列の一方がEmployeesNULLである場合、クエリがまだ行が返されます:MS Accessでは、これはまた、括弧の束を必要とします。

+0

ありがとうございましたGordon!小文字の修正(ON etl。= On e。)の魅力のように機能します。あなたが変更したいx文字未満であるので、誤植を訂正できません。再度、感謝します! –

関連する問題