Я пытаюсь оставить три таблицы с предложением where. В первом примере запрос приводит к внутреннему соединению. Если я выберу предложение where, это приведет к левому соединению, но включает записи за пределами желаемого диапазона дат.Предложение WHERE делает LEFT JOIN работать как INNER JOIN
Я использую Microsoft Access 2010 и Visual Basic 2010.
strQry = " SELECT tblUnits.UnitNumber, TenantName, SchedRent, SchedCAM, sum(AMOUNT) as SUMAMOUNT " _
& " FROM ((tblUnits LEFT JOIN tblTenants ON tblTenants.Unitptr = tblUnits.ID) " _
& " LEFT JOIN tblTrans ON (tblTenants.ID = tblTrans.id) ) " _
& " WHERE (tblTrans.PostDate BETWEEN #" & txtStartDate.Text & "# AND #" & txtEndDate.Text & "#) " _
& " GROUP BY tblUnits.UnitNumber, TenantName, SchedRent, SchedCAM " _
& " ORDER BY tblUnits.UnitNumber "
Во втором примере он прекрасно работает, но только соединяет две таблицы
strQry = " SELECT U.UnitNumber, sum(AMOUNT) as sumamount " _
& " FROM tblUnits AS U " _
& " LEFT JOIN " _
& " (" _
& " SELECT * " _
& " FROM tblTrans " _
& " WHERE (tblTrans.PostDate BETWEEN #" & txtStartDate.Text & "# AND #" & txtEndDate.Text & "#) " _
& ") as X " _
& " ON U.ID = X.ID " _
& " GROUP BY U.UnitNumber "
Я не могу получить синтаксис исправить, когда я пытаюсь присоединиться к третьей таблице
Давай список запроса. Не заставляйте нас читать = ". Это затрудняет отправку ответа. I pass. – Paparazzi