语法错误加入3个表

时间:2009-04-16 13:42:05

标签: sql ms-access

我正在尝试使用以下sql语句加入3个表

Select 
    Sum(OrderDetail_table.Price * orderDetail_table.quantity) as totalPrice,
    item_table.GLacct 
from 
    OrderDetail_table 
    left outer join order_table on 
        orderDetail_table.orderID = order_table.orderid 
    left outer join item_table on 
        item_table.itemID = orderDetail_table.itemID 
where 
    Order_table.invoiceDate = #01/31/2009# 
group by 
    item_table.glacct

我收到的错误消息是:

“查询表达式中的语法错误(缺少运算符)'orderDetail_table.OrderID = order_table.orderid在item_table.itemID = orderDetail_table.itemID'上留下外连接item_table。”

任何帮助将不胜感激。感谢

我希望它总是返回orderDetail_table.price * orderDetail_table.quantity的总和,orderDEtail_table.ItemID可能没有item_table.GLAcct

2 个答案:

答案 0 :(得分:0)

由于OrderDetail表始终是Order的一部分,并且每个细节始终引用一个Item,您可以用INNER JOIN替换LEFT OUTER JOIN。特别是,由于WHERE和GROUP BY子句都引用了可选表。

错误消息究竟是什么?

答案 1 :(得分:0)

尝试括号:

Select
    Sum(OrderDetail_table.Price * orderDetail_table.quantity) as totalPrice,
    item_table.GLacct 
from
     (OrderDetail_table
     left outer join order_table on
         orderDetail_table.orderID = order_table.orderid)
     left outer join item_table on
         item_table.itemID = orderDetail_table.itemID
where
     Order_table.invoiceDate = #01/31/2009#
group by
     item_table.glacct