Access 2010:查询表达式中的语法错误(缺少运算符)
Posted
技术标签:
【中文标题】Access 2010:查询表达式中的语法错误(缺少运算符)【英文标题】:Access 2010: Syntax error (missing operator) in query expression 【发布时间】:2012-06-01 14:48:43 【问题描述】:我想在我的 sql 查询中包含三个表,但我收到一条错误消息。
我有这个 sql 代码:
SELECT warehouse.expiry_date, pharmacy.expiry_date, drugs.active_substance,
drugs.strength, drugs.strength_type, drugs.dosage_form, drugs.minimum_quantity,
SUM(warehouse.in_quant)+SUM(pharmacy.in_quant)-SUM(warehouse.out_quant)-
SUM(pharmacy.out_quant) AS Total_available_stock
FROM drugs as a
INNER JOIN warehouse as b
ON a.ID = b.drug_id
INNER JOIN pharmacy as c
ON b.drug_id = c.drug_id
GROUP BY warehouse.expiry_date, pharmacy.expiry_date, drugs.active_substance,
drugs.strength, drugs.strength_type, drugs.dosage_form, drugs.minimum_quantity;
我得到了错误:
Syntax error (missing operator) in query expression in 'a.ID = b.drug_id
INNER JOIN pharmacy as c
on b.drug_id = c.drug_i'.
有什么帮助吗?
【问题讨论】:
【参考方案1】:在 Access 中,如果您有多个联接,则需要括号:
FROM (drugs as a
INNER JOIN warehouse as b
ON a.ID = b.drug_id)
INNER JOIN pharmacy as c
ON b.drug_id = c.drug_id
【讨论】:
【参考方案2】:只是想补充一点,当您有超过 2 个内连接时,它会变得更加混乱。然后你需要在每个内连接的开头和结尾添加一个额外的括号(最后一个除外)
例子:
FROM ((drugs as a
INNER JOIN warehouse as b
ON a.ID = b.drug_id)
INNER JOIN pharmacy as c1
ON b.drug_id1 = c1.drug_id)
INNER JOIN pharmacy as c2
ON b.drug_id2 = c2.drug_id
【讨论】:
以上是关于Access 2010:查询表达式中的语法错误(缺少运算符)的主要内容,如果未能解决你的问题,请参考以下文章
OleDbException 未处理:查询表达式中的语法错误(缺少运算符)
odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 查询表达式中的语法错误(缺少运算符)
从 MS-Access 中联合选择查询中的 SQLite 语法错误
此查询在 Access 2010 中完美运行,但是当我尝试在代码中执行它时,在 INSERT INTO 语句中出现语法错误