繁体   English   中英

如何获取最近13个月的数据?

[英]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.

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