Mysql SQL过去12个月的累计值-每月明细
有人能帮我写一个sql语句吗?我使用的是SSRSR1(sql或SSRS解决方案都可以) 我如何:Mysql SQL过去12个月的累计值-每月明细,mysql,sql,sql-server,reporting-services,ssrs-2008,Mysql,Sql,Sql Server,Reporting Services,Ssrs 2008,有人能帮我写一个sql语句吗?我使用的是SSRSR1(sql或SSRS解决方案都可以) 我如何: 显示按月份和年份划分的计数度量 对于这些月份中的每一个,我想计算一下之前累积的12个月 e、 g 我已经开始编写这段代码,但它是不正确的,但是它让您了解我试图实现的目标(这个问题是我必须从一个日期开始计算月份和年份) 选择 计数 ,月(a.起始日期) ,年(a.起始日期) 从…起 A. 哪里 a、 StartDate>=DATEADD(mm,DATEDIFF(mm,0,@datepromt)-1
- 显示按月份和年份划分的计数度量
- 对于这些月份中的每一个,我想计算一下之前累积的12个月
选择
计数
,月(a.起始日期)
,年(a.起始日期)
从…起
A.
哪里
a、 StartDate>=DATEADD(mm,DATEDIFF(mm,0,@datepromt)-12,0)作为startdateYrAgo--2012年1月1日前的第一个月
a.StartDate这里您对查询有了一个想法,它必须如下所示
SELECT
periods.year
,periods.month
,measures.cnt
FROM (
SELECT DISTINCT
year = YEAR(StartDate)
, month = MONTH(StartDate)
, month_running = DATEDIFF(mm, 0, StartDate)
FROM a
GROUP BY YEAR(StartDate), MONTH(StartDate), DATEDIFF(mm, 0, StartDate)
) periods
JOIN (
SELECT month_running = DATEDIFF(mm, 0, StartDate), cnt = COUNT(measure)
FROM a
GROUP BY DATEDIFF(mm, 0, StartDate)
) measures
ON measures.month_running BETWEEN periods.month_running - 12 AND periods.month_running - 1
你试过什么?你已经检查过日期函数了吗?你的问题是什么?欢迎来到堆栈溢出!我建议您阅读常见问题,了解如何在StackOverflow中提问。一个好的经验法则是:以“我需要”开头的问题不是一个好问题。您希望看到2011年12月的dec
?是否希望从date\u valueselect
count(a.measure) count
,month(a.StartDate)
,year(a.StartDate)
from
a
where
a.StartDate >= DATEADD(mm,DATEDIFF(mm,0,@datepromt)-12,0) as startdateYrAgo --1st month 1 year ago 01/01/2012
and a.StartDate <= DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@datepromt)+1,0)) as startdateEOM --last day of month 31/01/2013
group by
month(a.StartDate)
,year(a.StartDate)
SELECT
periods.year
,periods.month
,measures.cnt
FROM (
SELECT DISTINCT
year = YEAR(StartDate)
, month = MONTH(StartDate)
, month_running = DATEDIFF(mm, 0, StartDate)
FROM a
GROUP BY YEAR(StartDate), MONTH(StartDate), DATEDIFF(mm, 0, StartDate)
) periods
JOIN (
SELECT month_running = DATEDIFF(mm, 0, StartDate), cnt = COUNT(measure)
FROM a
GROUP BY DATEDIFF(mm, 0, StartDate)
) measures
ON measures.month_running BETWEEN periods.month_running - 12 AND periods.month_running - 1