【问题标题】:how to get sum of this column in sql server如何在sql server中获取该列的总和
【发布时间】:2011-06-14 22:41:10
【问题描述】:

我使用下面的查询来获取带有订单号的数据...

SELECT     Details.Quantity, 
           Details.OrderNumber, 
           Orders.OrderDate, 
           Products.ProductName, 
           Products.UnitPrice ,
           Details.Quantity*Products.UnitPrice as qprice
FROM       Details 
INNER JOIN Orders 
   ON Details.OrderNumber = Orders.OrderNumber 
INNER JOIN Products 
   ON Details.ProductID = Products.ProductID
where Orders.OrderNumber='14195'

这个查询给我下面的结果

现在我想给出 qprice 列的总和..

我该怎么做??

【问题讨论】:

    标签: c# .net asp.net sql sql-server


    【解决方案1】:

    像这样?

    SELECT SUM(Details.Quantity * Products.UnitPrice) AS Amount
    FROM Details 
        INNER JOIN Orders ON 
            Details.OrderNumber = Orders.OrderNumber
        INNER JOIN Products ON 
            Details.ProductID = Products.ProductID
    WHERE Orders.OrderNumber = '14195'
    

    如果您需要将 TotalAmount 作为现有列的额外列:

    SELECT    
        Details.Quantity, 
        Details.OrderNumber, 
        Orders.OrderDate,
        Products.ProductName,
        Products.UnitPrice,
        Details.Quantity*Products.UnitPrice as qprice,
        SUM(Details.Quantity*Products.UnitPrice) OVER() TotalAmount
    FROM Details 
        INNER JOIN Orders ON 
            Details.OrderNumber = Orders.OrderNumber
        INNER JOIN Products ON 
            Details.ProductID = Products.ProductID
    WHERE Orders.OrderNumber = '14195'
    

    【讨论】:

    • 谢谢,但给出了这个错误... 列 'Details.Quantity' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    • @hesam salehnamadi - 如果您只指定一个 SUM 列,它不应该给您错误。如果您需要保留已有的列,请使用第二个查询。
    猜你喜欢
    • 2013-02-03
    • 2015-05-07
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多