私はwhere句で3つのテーブルを結合しようとしています。最初の例の では、クエリは内部結合になります。 where句を取り出すと、左結合が行われますが、目的の日付範囲外のレコードが含まれます。WHERE節はLEFT JOINをINNER JOINのように動作させます
私はそれが完璧に動作しますが、2つのだけのテーブル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 "
に参加し、私は構文を取得することはできません2番目の例での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 "
を使用してい
第3のテーブルに参加しようとすると正しくなる
は、リスト上のクエリを、是非。 – Paparazzi