繁体   English   中英

按季度销售总额

[英]Sum of sales by Quarter

我如何使用SQL和SUM月度数据(季度视图)? 我不会使用存储过程等。

Current data:
   ID  |  Sales
201601 |   5
201602 |   15
201603 |   5
201604 |   20
201605 |   8
201606 |   2

...

我的ID栏就像yyyymm

我想要的是:

Quarter  |  Sales
   Q1    |   25
   Q2    |   30

....

您可以尝试如下查询

SELECT 
  LEFT(ID,4) Year,
  'Q'+ CAST((CAST(RIGHT(ID,2) AS INT)-1 )/3 +1 AS varchar) Quarter,
  SUM(Sales) Sales
FROM 
   Yourtable
GROUP BY 
  LEFT(ID,4), 
  'Q'+ CAST((CAST(RIGHT(ID,2) AS INT) -1 )/3 +1 AS varchar) 
order by year

SQL演示链接

您可以使用DATEPARTQUARTER获取DATETIME的四分之一。 您只需要使用DATEFROMPARTS构建DATETIME并解析您的ID列。

CONCAT只是在句号中加上'Q'。

SELECT  LEFT(id,4) [Year], 
        CONCAT('Q',DATEPART(QUARTER, DATEFROMPARTS(LEFT(id,4), RIGHT(id, 2), 1))) [Quarter],
        SUM(Sales) [Sales]
FROM    yourtable
GROUP BY LEFT(id,4), DATEPART(q, DATEFROMPARTS(LEFT(id,4), RIGHT(id, 2), 1))
ORDER BY [Year], [Quarter]

暂无
暂无

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

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