SQL如何每月汇总数量报告

时间:2018-02-27 22:00:58

标签: sql

我有这样的表

PartID   Quantity     Date
12315       1      2017-01-24
51245       3      2017-01-26
12345       4      2017-02-20
12415       1      2017-02-25
.....     ..     ...........

我需要报告结果如:

Monthly Quantity January: 4
Monthly Quantity February: 5

因此,在我的报告中 - 每列都应该包含月份名称,并包含本月的所有数量(计数)。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

我认为您正在寻找类似的查询:

function carousel(){
   reset();
   current++;
   if (current > sliderImages.length){
     current = 1
    }
   sliderImages[current-1].style.display = "block";
   setTimeout(carousel, 7000);
} 

答案 1 :(得分:1)

在MS SQL中:

您可以使用以下内容:

DATENAME()函数返回给定日期的指定部分,作为字符串值。

要了解有关DATENAME()的更多信息,请访问https://www.w3schools.com/sql/func_sqlserver_datename.asp

CAST()函数将表达式从一种数据类型转换为另一种数据类型。

要了解有关CAST()的更多信息,请访问https://www.w3schools.com/sql/func_sqlserver_cast.asp

SELECT
  MONTH(Date) AS MonthNo,
  'Monthly Quantity ' + DATENAME(MONTH, date) + ' : ' + CAST(SUM(Quantity) AS nvarchar(10)) AS Monthwise
FROM parttable
GROUP BY DATENAME(MONTH, date),
         MONTH(Date)
ORDER BY MONTH(Date)

所以输出将是

enter image description here

答案 2 :(得分:0)

您使用的是哪个数据库?

在SQL Server上:

SELECT DATENAME(month, Date) AS 'Month Name', SUM(Quantity) FROM table GROUP BY DATENAME(month, Date)

答案 3 :(得分:0)

您可以拥有两个选项:

1)创建另一列并在其中存储月份名称。

PartID Quantity     Date.        Month
12315     1      2017-01-24.    January
51245     3      2017-01-26.    January
12345     4      2017-02-20.    February
12415     1      2017-02-25.    February

并使用以下查询根据需要获取报告:

Select sum(Quantity) as total_quantity, Month from table group by Month

2)使用MySQL的内置日期和时间函数。

Select sum(Quantity) as total_quantity, Month(Date) as month from table group by Month(Date)