Sql 连接3个表时出现语法错误
我试图用下面的sql语句连接3个表Sql 连接3个表时出现语法错误,sql,ms-access,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
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\u table.OrderID=order\u table.OrderID左侧外部联接项\u table on item\u table.itemID=orderDetail\u table.itemID”中缺少运算符
任何帮助都将不胜感激。谢谢
我希望它始终返回orderDetail_table.price*orderDetail_table.quantity的总和,orderDetail_table可能没有item_table.GLAcct。ItemID由于orderDetail表始终是订单的一部分,并且每个细节始终引用一个项目,因此可以用内部联接替换左侧外部联接。特别是,因为WHERE和GROUPBY子句都引用可选表 错误消息是什么?请尝试括号:
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
你能为我们在代码中插入一些换行符吗?错误消息可能也会有帮助。如果你使用QBE网格在Access中构建SQL,你会得到保证工作的连接。Jet SQL不使用外部,只使用左或右,但当它在其中时不会阻塞。只有当你用手写的时候,你才会遇到这样的难题。旁观者之眼:我认为ACE/Jet SQL确实使用了OUTER,但当它被省略时,它不会阻塞。有趣的是,这里有一个奇怪的例子,说明ACE/Jet没有被错误的关键字david_w_fenton阻塞,而它应该:选择O1.OrderID,david_w_fenton选择COUNT*FROM[Order Details]作为OD1,其中O1.OrderID=OD1.OrderID来自作为O1的订单;