I am trying to execute the crazy query below with multiple left joins because of the data I am trying to get back. The weird thing is sometimes it work and then sometimes it gives me a join expression error. It seems that access strangely removes brackets around the ON clauses. However even when I put those brackets back in this query it isn't working. Can anyone point me in the correct direction either for why this query isn't running or why the brackets disappear in Access 2010. Any help gratefully appreciated.
Cheers
Viv
SELECT Patients.[First Name] & " " & Patients.[Surname] AS Fullname
, [Clinic Patient].[MYMOP ID]
, NZ(MYMOPs.[MYMOP Date], [Clinic Patient].[First Appointment]) AS [MYMOP1 Date]
, MYMOPs.Completed AS [MYMOP1 Completed]
, NZ(M2.[MYMOP Date], DateAdd("m", 1, [Clinic Patient].[First Appointment])) AS [MYMOP2 Date]
, M2.Completed AS [MYMOP2 Completed]
, NZ(M3.[MYMOP Date], DateAdd("m", 2, [Clinic Patient].[First Appointment])) AS [MYMOP3+ Date]
, M3.Completed AS [MYMOP3+ Completed]
, NZ(M4.[MYMOP Date], DateAdd("m", 3, [Clinic Patient].[First Appointment])) AS [MYMOP3+(2)]
, M4.Completed AS [MYMOP3+(2) Completed]
, NZ(M5.[MYMOP Date], DateAdd("m", 4, [Clinic Patient].[First Appointment])) AS [MYMOP3+(3)]
, M5.Completed AS [MYMOP3+(3) Completed]
, NZ(M6.[MYMOP Date], DateAdd("m", 5, [Clinic Patient].[First Appointment])) AS [MYMOP3+(4)]
, M6.Completed AS [MYMOP3+(4) Completed]
, NZ(M7.[MYMOP Date], DateAdd("m", 6, [Clinic Patient].[First Appointment])) AS [MYMOP3+ Final]
, [Clinic Patient].[Final MYMOP3+ Posted Date]
, [Clinic Patient].[Final MYMOP3+ Returned]
, [Clinic Patient].Notes
FROM ((((((((
Patients INNER JOIN [Clinic Patient] ON Patients.ID = [Clinic Patient].[Patient ID]
)
LEFT JOIN MYMOPs ON ([Clinic Patient].ID = MYMOPs.[Clinic Patient ID] AND MYMOPs.[MYMOP Type] = "1")
)
LEFT JOIN MYMOPs AS M2 ON ([Clinic Patient].ID = M2.[Clinic Patient ID] AND M2.[MYMOP Type] = "2")
)
LEFT JOIN MYMOPs AS M3 ON ([Clinic Patient].ID = M3.[Clinic Patient ID] AND M3.[MYMOP Type] = "3+(1)")
)
LEFT JOIN MYMOPs AS M4 ON ([Clinic Patient].ID = M4.[Clinic Patient ID] AND M4.[MYMOP Type] = "3+(2)")
)
LEFT JOIN MYMOPs AS M5 ON ([Clinic Patient].ID = M5.[Clinic Patient ID] AND M5.[MYMOP Type] = "3+(3)")
)
LEFT JOIN MYMOPs AS M6 ON ([Clinic Patient].ID = M6.[Clinic Patient ID] AND M6.[MYMOP Type] = "3+(4)")
)
LEFT JOIN MYMOPs AS M7 ON ([Clinic Patient].ID = M7.[Clinic Patient ID] AND M7.[MYMOP Type] = "3+(final)")
)
WHERE [Clinic Patient].[Clinic ID] = 3
AND [Clinic Patient].Status <> "Archived"
ORDER BY [Clinic Patient].[First Appointment] DESC;
Cheers
Viv
SELECT Patients.[First Name] & " " & Patients.[Surname] AS Fullname
, [Clinic Patient].[MYMOP ID]
, NZ(MYMOPs.[MYMOP Date], [Clinic Patient].[First Appointment]) AS [MYMOP1 Date]
, MYMOPs.Completed AS [MYMOP1 Completed]
, NZ(M2.[MYMOP Date], DateAdd("m", 1, [Clinic Patient].[First Appointment])) AS [MYMOP2 Date]
, M2.Completed AS [MYMOP2 Completed]
, NZ(M3.[MYMOP Date], DateAdd("m", 2, [Clinic Patient].[First Appointment])) AS [MYMOP3+ Date]
, M3.Completed AS [MYMOP3+ Completed]
, NZ(M4.[MYMOP Date], DateAdd("m", 3, [Clinic Patient].[First Appointment])) AS [MYMOP3+(2)]
, M4.Completed AS [MYMOP3+(2) Completed]
, NZ(M5.[MYMOP Date], DateAdd("m", 4, [Clinic Patient].[First Appointment])) AS [MYMOP3+(3)]
, M5.Completed AS [MYMOP3+(3) Completed]
, NZ(M6.[MYMOP Date], DateAdd("m", 5, [Clinic Patient].[First Appointment])) AS [MYMOP3+(4)]
, M6.Completed AS [MYMOP3+(4) Completed]
, NZ(M7.[MYMOP Date], DateAdd("m", 6, [Clinic Patient].[First Appointment])) AS [MYMOP3+ Final]
, [Clinic Patient].[Final MYMOP3+ Posted Date]
, [Clinic Patient].[Final MYMOP3+ Returned]
, [Clinic Patient].Notes
FROM ((((((((
Patients INNER JOIN [Clinic Patient] ON Patients.ID = [Clinic Patient].[Patient ID]
)
LEFT JOIN MYMOPs ON ([Clinic Patient].ID = MYMOPs.[Clinic Patient ID] AND MYMOPs.[MYMOP Type] = "1")
)
LEFT JOIN MYMOPs AS M2 ON ([Clinic Patient].ID = M2.[Clinic Patient ID] AND M2.[MYMOP Type] = "2")
)
LEFT JOIN MYMOPs AS M3 ON ([Clinic Patient].ID = M3.[Clinic Patient ID] AND M3.[MYMOP Type] = "3+(1)")
)
LEFT JOIN MYMOPs AS M4 ON ([Clinic Patient].ID = M4.[Clinic Patient ID] AND M4.[MYMOP Type] = "3+(2)")
)
LEFT JOIN MYMOPs AS M5 ON ([Clinic Patient].ID = M5.[Clinic Patient ID] AND M5.[MYMOP Type] = "3+(3)")
)
LEFT JOIN MYMOPs AS M6 ON ([Clinic Patient].ID = M6.[Clinic Patient ID] AND M6.[MYMOP Type] = "3+(4)")
)
LEFT JOIN MYMOPs AS M7 ON ([Clinic Patient].ID = M7.[Clinic Patient ID] AND M7.[MYMOP Type] = "3+(final)")
)
WHERE [Clinic Patient].[Clinic ID] = 3
AND [Clinic Patient].Status <> "Archived"
ORDER BY [Clinic Patient].[First Appointment] DESC;