I want to have three tables in my sql query but I get an error message.
I have this sql code:
 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;
And i get the error:
 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'.
Any help please?
A syntax error occurs when a programmer writes an invalid statement.
It may be the case that the query itself is not available for editing, such as a crosstab query. It may also be the case that only the field you are trying to edit is not available for editing — for example, if the field is based on an aggregate function, such as an average.
In Access you need parentheses when you have more than one join:
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
                        Just wanted to add that it gets even more messy when you have more than 2 Inner Joins. Then you need to add an extra parentheses at the beginning and to the end of each of the Inner Joins (except the last one)
Example:
 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
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With