1

有谁知道为什么这不起作用?

"SELECT TT.SubmitDate AS SD, TT.AssignedEmp as AE, TT.JobNum as JN, 
        TT.BegMile as BM, TT.EndMile as EM, TT.TotMile as TM, TT.TandT as TA, TT.Daily as DA,
        TI.InTime as IT, TI.OutLunch as OL, TI.InLunch as IL, TI.OutTime as OT, TI.TotalTime as TO,
        WO.JobName
 FROM TimeTracking TI
 INNER JOIN TransportTable TT 
 ON TI.TimeSheetNum = TT.TimeSheetNumber
 INNER JOIN WorkOrderNum WO
 ON TT.JobNum = WO.JobNumber
 WHERE TT.AssignedEmp='$empname' AND TT.SubmitDate >= '$start' AND TT.SubmitDate <='$end' 
 ORDER BY TT.SubmitDate";

它给了我这个错误信息:

SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error
(missing operator) in query expression 'TI.TimeSheetNum = TT.TimeSheetNumber 
INNER JOIN WorkOrderNum WO ON TT.JobNum = WO.JobNumber'., SQL state 37000
in SQLExecDirect

如果我删除两个连接中的任何一个,查询就可以正常工作,所以我知道问题不在于单独的连接......我错过了一些简单的东西吗?

4

1 回答 1

4

FROM访问需要在包含多个连接的查询子句中使用括号。如果可能,请使用 Access 查询设计器来设置连接 --- 查询设计器知道在哪里放置括号以保持数据库引擎的运行。

SELECT *
FROM
    (TimeTracking TI
    INNER JOIN TransportTable TT 
    ON TI.TimeSheetNum = TT.TimeSheetNumber)
    INNER JOIN WorkOrderNum WO
    ON TT.JobNum = WO.JobNumber

如果连接在类似的简单查询中工作,您可以添加SELECT字段、WHERE条件和ORDER BY.

于 2013-07-03T05:45:10.570 回答