【问题标题】:Calc Order Sum from Orderlines从订单行计算订单总和
【发布时间】:2026-01-09 06:15:01
【问题描述】:

您好,我正在尝试计算订单的总和。 我收到了一个带有 ID 的订单,以及一些订单行。

Order
ID       OrderDate  CustomerName


OrderLine
OrderID  ProductId   Amount    Price

我想做一个选择语句,我得到以下输出。

ID、OrderDate、CustomerName、OrderTotal。

【问题讨论】:

    标签: sql sql-server join sum


    【解决方案1】:

    您需要JOINGROUP BYSUM。类似的东西:

    SELECT o.ID,
           o.OrderDate,
           o.CustomerName,
           SUM(ol.Amount * ol.Price) AS OrderTotal
    FROM   [Order] o
           LEFT JOIN OrderLine ol /*If not all orders may have items */
             ON o.ID = ol.OrderID
    GROUP  BY o.ID,
              o.OrderDate,
              o.CustomerName  
    

    【讨论】:

      【解决方案2】:

      您的问题不完整。但我会尝试猜测剩余的缺失部分。

      假设您有两个表。一张桌子有 Orders ,我们称它为tbl_orders,另一张桌子有订单的详细信息,我们称它为tbl_details

      我会这样做

      select a.ID,a.OrderDate,a.CustomerName, sum(b.Amount * b.Price) OrderTotal 
      from tbl_orders a, tbl_details b where b.orderId = a.ID 
      group by a.ID,a.OrderDate,a.CustomerName
      

      【讨论】:

        最近更新 更多