2

MS Access 2013 で次のクエリに問題があります。

SELECT *
FROM (((
      (SELECT Stop.TAGeoID AS TAGeoID,
              Trip.TripNo AS TripNo
       FROM ((((Trip
                INNER JOIN BTStopTimes ON Trip.TripNo = BTStopTimes.TripNumber)
               INNER JOIN TripsTxt ON (Trip.TripNo = TripsTxt.trip_id
                                       AND Left(TripsTxt.shape_id, 3) <> 'ELD'))
              INNER JOIN PatternDetail ON Trip.PatternID = PatternDetail.PatternID
              AND BTStopTimes.Sequence = PatternDetail.StopSortOrder)
             INNER JOIN Stop ON Stop.GeoID = PatternDetail.GeoID)) AS t3
    LEFT JOIN
      (SELECT F10,
              F16
       FROM PatternStopsRaw
       WHERE F16 <> ''
       GROUP BY F10,
                F16)R ON R.F10 = t3.TAGeoID)
   LEFT JOIN Timepoint ON Timepoint.PlaceID = R.F16)
  LEFT JOIN
    (SELECT *
     FROM t3
     INNER JOIN TripDetail ON t3.TripNo = TripDetail.TripNo)TripTripDetail ON (Timepoint.TimePointID = TripTripDetail.TimepointID))

構文エラーがあると表示されます

The Microsoft Access database engine cannot find the input table or query t3. Make sure it exists and that its name is spelled correctly

Access では、同じクエリ内の名前付きクエリからの選択が許可されていないようです。

助言がありますか?

PS: * テスト目的でのみ使用されます。クエリが機能したら削除します。

4

1 に答える 1

1

はい、Access はそのレベルで [t3] エイリアスを認識していないようです。おそらく、クエリを作成してみることができます...

SELECT Stop.TAGeoID AS TAGeoID,
              Trip.TripNo AS TripNo
       FROM ((((Trip
                INNER JOIN BTStopTimes ON Trip.TripNo = BTStopTimes.TripNumber)
               INNER JOIN TripsTxt ON (Trip.TripNo = TripsTxt.trip_id
                                       AND Left(TripsTxt.shape_id, 3) <> 'ELD'))
              INNER JOIN PatternDetail ON Trip.PatternID = PatternDetail.PatternID
              AND BTStopTimes.Sequence = PatternDetail.StopSortOrder)
             INNER JOIN Stop ON Stop.GeoID = PatternDetail.GeoID)

...Access の保存済みクエリとして [t3] という名前を付け、メイン クエリでそれを参照します。

于 2013-08-28T16:17:48.230 に答える