【问题标题】:Access 2010: Syntax error (missing operator) in query expressionAccess 2010:查询表达式中的语法错误(缺少运算符)
【发布时间】:2012-06-06 19:49:13
【问题描述】:

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

有什么帮助吗?

【问题讨论】:

    标签: sql ms-access-2010


    【解决方案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
    

    【讨论】:

    • 谢谢。毫无意义的花言巧语,另一个看不起 Access 的理由。
    • 呃。荒谬的。 Thonx。
    • @Dave.Gugg,微软的 SQL Server 没有同样的问题,它实际上相当不错。不过,我更喜欢 MySQL。
    • 十年过去了,这个白痴的要求还在继续。
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 2020-01-14
      • 1970-01-01
      • 2018-09-02
      相关资源
      最近更新 更多