代码之家  ›  专栏  ›  技术社区  ›  pixeldev

连接3个表时出现语法错误

  •  0
  • pixeldev  · 技术社区  · 17 年前

    我正在尝试用以下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 left outer join item_table on item_table.itemid=orderdetail_table.itemid“中的语法错误(缺少运算符)。”

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

    我希望它总是返回orderdetail_table.price*orderdetail_table.quantity的总和,可能没有orderdetail_table.itemid的item_table.glacct

    2 回复  |  直到 17 年前
        1
  •  0
  •   Stanislav Kniazev    17 年前

    尝试括号:

    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
    
        2
  •  0
  •   devio    17 年前

    由于order detail表始终是订单的一部分,并且每个细节始终引用一个项,因此可以用内部联接替换左侧外部联接。尤其是,因为where和group by子句都引用可选表。

    错误信息到底是什么?