SQL Server Management Studioで動作するクエリをMS Accessに転送する際に問題が発生します。複数の結合(MS Access)でネストされたSELECTステートメント
Syntax error in JOIN operation
このエラーが発生した場合、 'FROM ProductRun'という行が強調表示されています。
私がやった複数のJoin文を扱うときは、Accessに角括弧が必要だと思います。私は立ち往生している。助けてください。
SELECT
LoadTable.DateTimeStamp, ProgramTable.Value 1, PL.Value 2, PL.Value 3
FROM
((LoadTable
LEFT JOIN
ProgramTable ON LoadTable.DateTimeStamp = ProgramTable.DateTimeStamp)
LEFT JOIN
PL ON LoadTable.DateTimeStamp = PL.DateTimeStamp)
LEFT JOIN
(SELECT [StartTime], [EndTime]
FROM ProductRun
WHERE ProductRun.StartTime >= '11/1/2017'
AND ProductRun.Startime <= '12/1/2017') ON (LoadTable.DateTimeStamp >= DATEADD(MINUTE, 15, ProductRun.StartTime)
AND LoadTable.DateTimeStamp <= DATEADD(MINUTE, -15, ProductRun.EndTime))
ORDER BY
LoadTable.DateTimeStamp;
これはうまく動作しますManagement Studioでの私のネストされたSELECT文です:
LEFT JOIN (SELECT [StartTime]
,[EndTime]
FROM [ProductionReporting].[dbo].ProductRun
WHERE StartTime between '11/1/2017 12:00:00 AM' and '11/25/2017 12:00:00 AM') as M3
ON M1.DateTimeStamp between DATEADD(MINUTE,15, M3.StartTime) and DATEADD(MINUTE,-15, M3.EndTime)
私はMS Accessのは、 'ONに不平等が可能とは思いません'句。 –
元の投稿を編集して管理スタジオにネストされたクエリを追加しました。 ON句でロジックテストが許可されていない場合、どのようにAccessでこの作業を行うのですか? – MTdoe
@GordonLinoffアクセスはそれらを許可します(私はそれらを複数のクエリで使用しました)。私はKashifが正しくエラーを見つけたと思っています。「DateAdd」の最初の引数は文字列でなければなりません。「MINUTE」は有効な引数ではありません(おそらくAccessはそれが存在しないはずの場所のパラメータだと考えています)。また、 'ON'節での複数比較=アクセスで必要な括弧 –