2009-04-16 146 views
0
有语法错误

我想加入3代表与下面的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.itemID = orderDetail_table.itemID'左边的外部连接item_table。“

任何帮助,将不胜感激。由于

我想它总是返回orderDetail_table.price的总和* orderDetail_table.quantity,有可能不是一个item_table.GLAcct一个orderDEtail_table.ItemID

+1

你能扔了一些换行到我们的代码? – 2009-04-16 13:43:06

+2

错误消息可能也有帮助。 – 2009-04-16 13:46:49

回答

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 
0

由于的OrderDetail表始终是一个订单的一部分,并且每个细节始终引用一个Item,则可以用INNER JOIN替换LEFT OUTER JOIN。尤其是,由于WHERE和GROUP BY子句都引用可选表。

什么是错误信息?