繁体   English   中英

如何在 SQL 服务器中将多行汇总为 1 行?

[英]How to SUM many rows into 1 row in SQL Server?

以下是我的语法

with AA as 
(
  select distinct Store_Code, sum([Transactions]) as totaltrans
  from CRM_RETAIL_SUMMARY
  where Store_Code in ('L43','J62','L45','UA2','A35','949','C50','L44','Y45')
    and Trans_Hdr_Sale_Date BETWEEN '2018-12-1' AND '2018-12-31'
  group by Transactions, Store_Code
),
BB as 
( 
  select distinct[Store_Code] as storecode from CRM_RETAIL_SUMMARY
)
select AA.totaltrans, BB.storecode
from AA
inner join BB on AA.Store_Code = BB.storecode

然后结果显示:

storecode   totaltrans
----------------------
A35          65
A35          76
A35          48
A35          62
A35          56
UA2           5
UA2           6
UA2           8
UA2          15
UA2           9
UA2          16
949          16
949          29
949          55

但我想对每个存储代码进行如下求和,但我不知道如何:

storecode  totaltrans
---------------------
A35         307 
UA2          59

谢谢大家的回答

您只需store_code分组,而不是store_code transactions 你不需要第二个cte

with AA as (
  select Store_Code, sum([Transactions]) as totaltrans
  from CRM_RETAIL_SUMMARY
  where Store_Code in ('L43','J62','L45','UA2','A35','949','C50','L44','Y45')
    and Trans_Hdr_Sale_Date BETWEEN '2018-12-1' AND '2018-12-31'
  group by Store_Code
)
select * from AA;

你会使用group by吗?

select BB.storecode, sum(AA.totaltrans)
from AA join
     BB
     on AA.Store_Code = BB.storecode
group by BB.storecode;

当然,这是在 CTE 之后进行的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM