首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态数据选择

动态数据选择
EN

Stack Overflow用户
提问于 2018-08-09 09:22:08
回答 2查看 77关注 0票数 1

我得到了一些每周3年的数据,并编写了提取最后104个星期数据的代码(数据一直持续到2014年12月26日,所以我选择了2013年1月2日的所有数据)。

您知道我如何修改代码(如下所示),以便无论查询何时运行,它都能获得最后两年的数据值吗?如果数据是下周运行的,并且数据是输入到上周可用的代码,我希望它能得到最后104周的数据,根据上周的数据。

如果您知道,请您修改下面的代码好吗?

我正在使用2014。

代码语言:javascript
复制
select 
    pz.PriceZoneID,
    pz.Name,
    CAST (ash.Date as date) as Date,    
    format(sum (Sales), '#,###') as SalesByZone 
from AggregatedSalesHistory as ash  
join v_EnterpriseStructure as es on es.ProductSID = ash.ProductSid
join PriceZone as pz on pz.PriceZoneID = ash.PriceZoneID
WHERE ash.date >= '2013-01-02' and ash.date<= '2014-12-24'
group by pz.PriceZoneID,
        pz.Name,
        ash.Date
order by PriceZoneID,
        ash.Date
EN

回答 2

Stack Overflow用户

发布于 2018-08-09 09:28:51

取决于你如何定义两年,但是的,只是改变的地方,到目前为止的2年,喜欢;

代码语言:javascript
复制
WHERE ash.date >= dateadd(year, -2, getdate()) and ash.date <= getdate()

如果你想要整整两年,从年初算起,它会更像;

代码语言:javascript
复制
WHERE ash.date >= DATEADD(yy, DATEDIFF(yy, 0, DATEADD(YEAR, -2, GETDATE())), 0)  and ash.date <= DATEADD(yy, DATEDIFF(yy, 0, DATEADD(YEAR, -1 ,GETDATE())) + 1, -1)
票数 3
EN

Stack Overflow用户

发布于 2018-08-09 09:31:40

请参阅此修改:如果您将日期声明为DECLARE @DATE DATE= '2013-01-02',则只需从@date中抽出2年时间来获取最后2年的数据。

代码语言:javascript
复制
   WHERE 
    ash.date BETWEEN  dateadd(year, -2, @DATE) and @DATE

如果你想要根据你的要求(

我想要它得到最后104周的数据,基于上周

)。

你可以:

代码语言:javascript
复制
  WHERE 
        ash.date BETWEEN  dateadd(WEEK, -104, @DATE) and @DATE

请参阅下面的完整代码

代码语言:javascript
复制
DECLARE @DATE DATE= '2013-01-02'



select 
    pz.PriceZoneID,
    pz.Name,
    CAST (ash.Date as date) as Date,    
    format(sum (Sales), '#,###') as SalesByZone 
from AggregatedSalesHistory as ash  
join v_EnterpriseStructure as es on es.ProductSID = ash.ProductSid
join PriceZone as pz on pz.PriceZoneID = ash.PriceZoneID
WHERE 
ash.date BETWEEN  dateadd(year, -2, @DATE) and @DATE
group by pz.PriceZoneID,
        pz.Name,
        ash.Date
order by PriceZoneID,
        ash.Date
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51763310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档