在查询表达式语法错误(缺少运算符):Access 2010中在查询表达式语法错误(缺少运算符):Ac

2019-05-16 22:08发布

我想在我的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'.

任何帮助吗?

Answer 1:

在访问你需要括号当你有一个以上的加入:

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


Answer 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: Syntax error (missing operator) in query expression