【问题标题】:SQL Server: How to calculate different sums in a single querySQL Server:如何在单个查询中计算不同的总和
【发布时间】:2010-02-16 01:13:56
【问题描述】:

一位朋友建议我在这里发帖,因为我需要一些帮助!

数据库布局:

**salestable**
salesorder [primary, unique] (sales order number)
salesman (salesperson id)

**salesline**
salesorder [many sales line to single salestable relationship]
saleprice (line amount)
isaccessory (0 or 1)

我想在一次选择中将每个销售员的总销售价格相加,但在配件 = 1 的情况下也计算销售价格的总和。

分组和连接不是我坚持的,而是我是否可以做双重求和。

在我的脑海里看起来像

...salesman,sum(amount) as totalsales,sum(amount where accessory=1) as accessorysales...

但显然这永远行不通!

提前致谢! (PS,我是新来的,温柔点……)

【问题讨论】:

  • @Jon:我已经从标题中删除了“Über”。这里讨论的许多 SQL 问题比这复杂得多。

标签: sql tsql


【解决方案1】:
SELECT  salesman, SUM(amount), SUM(CASE WHEN accessory = 1 THEN amount ELSE 0 END)
FROM    salestable t
JOIN    salesorder o
ON      o.salesorder = t.salesorder
GROUP BY
        salesman

【讨论】:

  • 你这个滑溜溜的鱼!你打败了我。 +1
  • @Welbog:你没有绑定密钥,是吗?
  • @Quassnoi:相反,我正忙于解释CASE 语句的用途......你直接跳到 SQL 中而不解释它。
  • @Welbog:如果是CASE(没有双关语),查询似乎不言自明。此外,就我而言,强迫我通过文档来找出程序/查询/任何工作的方式比勺子解释具有更多的宣传价值。 (这当然是人们寻求解决方案而不是解释的时候)。
  • 谢谢你们,你们都是光荣的。 @Quassnoi,你说得对,我不再需要自己思考(我在开玩笑!)案例正是我想要的,虽然在这种情况下我通常会深入研究手册,但我没有时间,或这样做的心理能力。再次感谢:)
猜你喜欢
  • 2021-05-06
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多