Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access 2010:查询表达式中的语法错误(缺少运算符)_Sql_Ms Access 2010 - Fatal编程技术网

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

Sql Access 2010:查询表达式中的语法错误(缺少运算符),sql,ms-access-2010,Sql,Ms Access 2010,我想在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(war

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

有什么帮助吗?

在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

只是想补充一点,当你有两个以上的内部连接时,它会变得更加混乱。然后,您需要在每个内部联接的开头和结尾添加一个额外的括号(最后一个除外)

例如:

 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的另一个原因。荒唐的Thonx.@Dave.Gugg,微软的SQL Server没有同样的问题,它实际上相当不错。不过,我更喜欢MySQL。十年后,这种愚蠢的需求仍然很强烈。