【问题标题】:get records from previous year based on month and year and status根据月份和年份以及状态获取上一年的记录
【发布时间】:2017-05-30 11:52:06
【问题描述】:

我有下表:

创建的具有日期的列 具有打开、关闭、已解决等值的状态列

我只想获取那些处于打开状态并且创造价值是上个月的记录。如果年份也发生变化,我想注意一下。点赞创建日期为 2016-12-31,当前日期为 2017-01-01

以下是我的查询:

select (case when Status_Flag = 'open' and (DATEPART(MONTH,Created) = DATEPART(Month,GetDate()) -1 OR 
(DATEPART(MONTH,Created) = DATEPART(Month,GetDate()) -1 OR DATEPART(YEAR,Created) < DATEPART(YEAR,GetDate()))) then 1 else 0 end) as Inc_BroughtForward from <table_name> where status = 'open'

请告诉我我的逻辑是否正确?

【问题讨论】:

    标签: sql-server tsql


    【解决方案1】:
    select *
    from <table_name>
    where status = 'open'
        and Created between DATEADD(month, -2, DATEADD(day, 1, EOMONTH(GETDATE()))) and DATEADD(day, -1, DATEADD(month, -1, DATEADD(day, 1, (EOMONTH(GETDATE())))))
    

    【讨论】:

      【解决方案2】:

      找到一个解决方案:

      select
      
      (case when Status = 'open' and DATEDIFF(MONTH, Created, GETDATE()) = 1  then 1 else 0 end) as Inc_BroughtForward 
      
      from <table_name>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-10
        • 1970-01-01
        • 1970-01-01
        • 2020-03-25
        • 1970-01-01
        相关资源
        最近更新 更多