2015-09-10 203 views
0

我目前正在尋找做一些我認爲是超級簡單,但我目前由於某種原因失蹤。我有兩個表格,一個是所有公司驅動程序的列表,另一個是司機最近發生的事件列表。我期待着查詢一份司機名單並顯示他們是否有事故發生。我現在的查詢只會顯示有事件的驅動程序,而不是那些沒有的事件。我認爲這與我的加入有關。顯示所有記錄,如果他們有一個記錄在另一個表

SELECT DriverProfile.DriverID, DriverProfile.FirstName, DriverProfile.LastName, dbo_manpowerprofile.mpp_senioritydate AS [Seniority Date], Last(Incidents.[Event Date]) AS [Incident Date] FROM (DriverProfile LEFT JOIN dbo_manpowerprofile ON DriverProfile.DriverID = dbo_manpowerprofile.mpp_id) LEFT JOIN Incidents ON DriverProfile.DriverID = Incidents.Driver WHERE (((Incidents.Type)<>"OBS") AND ((Incidents.Preventability)<>"TNP" And (Incidents.Preventability)<>"NTNP") AND ((DriverProfile.ActiveYN)="Y")) GROUP BY DriverProfile.DriverID, DriverProfile.FirstName, DriverProfile.LastName, dbo_manpowerprofile.mpp_senioritydate;

回答

1

這個問題實際上是你的WHERE子句。對左連接的表(dbo_manpowerprofile和Incidents)應用標準,可以有效地實現這些連接,內連接。如果您在Access中工作,則需要爲這些表創建單獨的查詢並在其中應用條件。然後將這些查詢留給DriverProfile。如果您在SQL Server中工作,則可以在連接本身中包含條件。

相關問題