多语言展示
当前在线:485今日阅读:60今日分享:41

如何按指定月数分拆日期区间?

此篇教大家如何按指定月数分拆日期区间?
工具/原料

电脑

方法/步骤
1

定义日期查询表格,主表字段:开始日期,结束日期,日期间隔(月份)--数值,设定间隔(月份)-数值,间隔段-数值;扩展表字段:度量序号-数值,开始日期,结束日期 其中,开始日期和结束日期手动输入给出日期间隔,日期间隔(月份)-数值:通过计算得出两个日期间隔相隔月份,如果结束日期的'天' 大于开始日期的'天',则月份间隔+1(计算日期间隔的时候,如果时间2.5个月,间隔只计算出2,所以+1)         设定间隔(月份)-数值:手动设定间隔月份,可以是1个月,三个月,六个月,12个月,为数值型,根据需要手动设定。        时间段:根据计算出的日期间隔和设定的时间间隔,向上整除,得到需要的行数。日期间隔=13   设定间隔=3  则时间段=5;设定间隔=4,时间段=4,然后根据主表时间段,设定间隔提取扩展表的时间段数据

2

提取开始日期和结束日期的间隔月份(结束日期天  大约开始日期天时,向上+1) 建立提取公式:名称:提取时间段间隔月份                     执行时机:自动执行                     筛选条件:开始日期不为空 并且 结束日期不为空                    填充: 日期间隔(mm,本报表.[日期筛选_主表].[租金开始日期],本报表.[日期筛选_主表].[租金结束日期])+case when 日期间隔(dd,本报表.[日期筛选_主表].[租金开始日期],本报表.[日期筛选_主表].[租金结束日期])>0 then 1 else 0 end 这里填充应用到两个功能点,a:高级函数里面的日期间隔,日期间隔(mm,开始日期,结束日期)  直接去两个日期之间的差值。 b:case when 语法,这与excel公式工if语法对应,在SQL中,可以用  case when   条件  then   结果  end来做条件判断,这里就是为了判断结束日期的填比开始日期的天大时,+1。   case when 条件   then  结果   end  中,在 case  和  end 间可以加很多个when  then  。

3

提取间隔月份后,手动设定需要查询的间隔月份,可以是1个月,3个月,6个月,根据自身需要设定,、    设定好后,使用ROUNDUP函数,计算日期间隔和设定间隔的区间段数。

4

提取间隔月份后,手动设定需要查询的间隔月份,可以是1个月,3个月,6个月,根据自身需要设定,、    设定好后,使用ROUNDUP函数,计算日期间隔和设定间隔的区间段数。

5

随便建立一个序号表,从1往下排,类似上个帖子的日期设置表,这个表更简单,只需要序号信息

6

建立提取公式,提取扩展表的日期 名称:提取查询时间间隔 数据来源:序号表 执行时机:手动执行 筛选条件:序号表序号<=间隔段数值 填充:扩展表间隔段---序号表序号  升序          扩展表开始日期---case when [序号表_扩展表].[序号]=1 then 本报表.[日期筛选_主表].[租金开始日期] else 日期加减(m,[序号表_扩展表].[序号]-1,本报表.[日期筛选_主表].[租金开始日期]) end          扩展表结束日期----case when [序号表_扩展表].[序号]=本报表.[日期筛选_主表].[间隔段] then 本报表.[日期筛选_主表].[租金结束日期] else 日期加减(m,[序号表_扩展表].[序号]*本报表.[日期筛选_主表].[间隔段],本报表.[日期筛选_主表].[租金开始日期])-1 end

7

最终效果:

推荐信息