我在将 SQL Server Management Studio 中的查询传输到 MS Access 时遇到问题。我收到一个错误:
JOIN 操作中的语法错误
当我收到此错误时,“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)
试试这个:
SELECT loadtable.datetimestamp,
programtable.value AS 1,
pl.value AS 2,
pl.value AS 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.starttime <=#12/1/2017# ) a
ON loadtable.datetimestamp >= Dateadd("n", 15, a.starttime)
AND loadtable.datetimestamp <= Dateadd("n", -15, a.endtime)
ORDER BY loadtable.datetimestamp;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句