[英]How to grab data from the last 13 months?
因此,我有这段代码,用于获取最近11个月的销售数据(包括当月),并将其整整一年。 我该怎么做才能将其更改为过去12个月加上当月的数据? 我知道我必须在右侧(选择时间段)进行更改...但不确定
在这个函数中,左边的函数显示如何将当前年份(2014)减去1得出2013 ..但是我不明白右边的函数,2是什么意思? 谢谢
period <= (
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))) and period >= (
convert(varchar, left((
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))),4)-1)+'-'+
convert(varchar, right((
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))),2)))
group by prodnum, period, WhseNum
哇,哥们,我想您可能在这里使事情变得过于复杂。 如果您想获取过去X个月的数据,则只需使用DATEADD
它是一个非常有用的功能 。
然后您需要做的就是
select
YourColumns
FROM YourTable
WHERE YourDate >= DATEADD(MONTH, -13, CAST(GETDATE() AS DATE))
ba,你去那里。
DECLARE
@FormYear AS INT,
@FormMonth AS INT,
@ToYear AS INT,
@ToMonth AS INT,
@FromDate AS DATE,
@ToDate AS DATE
SET @FormYear=YEAR(DATEADD(DAY, -365, GETDATE()))
SET @FormMonth=MONTH(DATEADD(DAY, -365, GETDATE()))
SET @ToYear=YEAR(GETDATE())
SET @ToMonth=MONTH(GETDATE())
SET @FromDate= CAST(CAST(@FormMonth AS VARCHAR) +'-'+'01'+ '-' +CAST(@FormYear AS VARCHAR) AS DATE)
SET @ToDate= CAST(CAST(@ToMonth AS VARCHAR) +'-' + '01'+'-' + CAST(@ToYear AS VARCHAR) AS DATE)
之后,只需选择-
YourDateField Between @FormDate AND @ToDate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.