【问题标题】:MS SQLServer How to multiply two columns, then add them all together..?MS SQL Server 如何将两列相乘,然后将它们加在一起..?
【发布时间】:2016-02-22 19:04:16
【问题描述】:

我是新来的。第一篇文章。非常感谢您的帮助。

我正在尝试计算所有已售产品的总销售额。 我有一个数量列和一个价格列。 我了解如何将这两列相乘,但我不知道如何在同一个查询中将它们全部相加。

这是一个例子: 数量:2、3、1 价格:2、4、5 我可以做数量 * 价格得到:4、12、5 但是那我怎么加 4 + 12 + 5 来得到总数呢?我需要将此步骤包含在同一个查询中。

编辑:数量和价格列都在同一个表中。 销售(数量、价格)

我正在使用 Microsoft SQL-Server。

【问题讨论】:

  • 能否请您指定您使用的 SQL 引擎。例如 SQL-Server 或 MySQL 等。另外,如果您可以通过提供表定义来描述每个表。
  • 欢迎来到 SO... 如果我们可以看到一些示例数据,这将有助于理解您的问题。另请务必查看此页面 (stackoverflow.com/help/how-to-ask)。
  • 您能否提供一些示例数据,就像in this solution 所做的那样(这只是一个示例)。

标签: mysql sql


【解决方案1】:

如果你有一张桌子的例子:

SELECT dbo.orderid,
             SUM(dbo.quantity * dbo.price) AS grand_total,
        FROM ORDERITEM 

如果你有两张表而不是一张,那么:

 SELECT oi.orderid,
         SUM(oi.quantity * p.price) AS grand_total,
    FROM ORDERITEM oi
    JOIN PRODUCT p ON p.id = oi.productid
   WHERE oi.orderid = @OrderId
GROUP BY oi.orderid

将所有行(订单编号)加在一起以获得总数,您只需 groupby 并选择总和值。下面的例子:

SELECT     Orderid, SUM(quanity) AS Expr1, SUM(price) AS Expr2, SUM(quanity * price) AS Total
FROM         dbo.mytable
GROUP BY pid
HAVING      (pid = 2)

或者在 SQL 视图中显示总数量和价格:

SELECT     Orderid, SUM(quanity) AS Quanity, SUM(price) AS Price, SUM(quanity * price) AS Total
FROM         dbo.mytable
GROUP BY pid

【讨论】:

  • 只有一张桌子。该代码仅用于乘以 Quantity * Price 是有意义的,但我还需要获取这些答案,然后将它们全部相加(相加)。我是 SQL 新手,所以不确定 dbo 是什么。意思是。
  • 当然,例如,您选择的是订单编号吗?这意味着您可能有多个 orderid 记录,并且您想将它们全部加起来(多行)? dbo 只是一个数据库对象,在这种情况下,一个表就是一个 dbo。您的表名可以是任何名称,但 sql 将其称为 dbo 或模式。如果答案正确,请勾选,谢谢。
  • 我想我现在已经弄清楚了。这是我使用的代码:SELECT SUM (Quantity * Price) AS TotalSales FROM SALES;该表确实有一个订单 ID,但我认为它与我的问题无关。上面这段代码看起来正确吗?
  • 是的,这和我上次的 sn-p 是一样的,它应该以其基本形式工作。
  • 我是 SQL 新手,只是做一些基本的事情。我在很大程度上了解您更有经验的代码。谢谢你帮我弄清楚!
猜你喜欢
  • 2012-11-11
  • 2010-10-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多