【问题标题】:GROUP BY Issue - Grouping per month按问题分组 - 每月分组
【发布时间】:2016-06-30 13:54:36
【问题描述】:
SELECT 
   Sum(Earning) AS Amount, 
   MONTH(DateCreated) AS Month 
FROM 
   TheTable 
WHERE 
   DateCreated 
BETWEEN 
   @DateFrom AND @DateTo 
GROUP BY **???**

我想显示每月收入,如果它在明年再次出现,它不应该对月份进行分组,例如

五月、六月、七月、八月、九月、十月、十一月、十二月、一月、二月、三月、四月、五月、六月等。

意思是如果年份不同,它应该继续列表而不分组,例如共 2015 年 5 月和 2016 年 5 月。

谢谢

【问题讨论】:

  • MySQLSQL Server?
  • 我根据证据优势删除了 MySQL 标签。
  • 你应该按月份和收入分组..
  • 你想按年和月分组,但只输出月份?

标签: sql sql-server sql-server-2008


【解决方案1】:

selectgroup by 中包含年份:

SELECT YEAR(DateCreated) as Year, MONTH(DateCreated) AS Month, 
       Sum(Earning) AS Amount
FROM TheTable 
WHERE DateCreated BETWEEN @DateFrom AND @DateTo 
GROUP BY YEAR(DateCreated), MONTH(DateCreated)
ORDER BY YEAR(DateCreated), MONTH(DateCreated);

【讨论】:

  • 优秀。我需要等待 1 分钟才能接受您的回答。谢谢
【解决方案2】:

您可以使用按月分组的函数()

SELECT 
 Sum(Earning) AS Amount, 
 MONTH(DateCreated) AS Month 
FROM 
  TheTable 
WHERE 
  DateCreated 
BETWEEN 
   @DateFrom AND @DateTo 
GROUP BY  MONTH(DateCreated)

【讨论】:

  • 不,你不能在group by中使用别名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多