![3b28eef199a283bc02fbaf239c577cba.png](https://i-blog.csdnimg.cn/blog_migrate/013de03ea0933a496be4c6fd33b1cd4e.jpeg)
定义日期查询表格,主表字段:开始日期,结束日期,日期间隔(月份)--数值,设定间隔(月份)-数值,间隔段-数值;扩展表字段:度量序号-数值,开始日期,结束日期。
其中,开始日期和结束日期手动输入给出日期间隔,日期间隔(月份)-数值:通过计算得出两个日期间隔相隔月份,如果结束日期的"天" 大于开始日期的"天",则月份间隔+1(计算日期间隔的时候,如果时间2.5个月,间隔只计算出2,所以+1);
设定间隔(月份)-数值:手动设定间隔月份,可以是1个月,三个月,六个月,12个月,为数值型,根据需要手动设定。
时间段:根据计算出的日期间隔和设定的时间间隔,向上整除,得到需要的行数。日期间隔=13 设定间隔=3 则时间段=5;设定间隔=4,时间段=4,然后根据主表时间段,设定间隔提取扩展表的时间段数据。
![807b6b3ec61e89d258237bbc32e650e6.png](https://i-blog.csdnimg.cn/blog_migrate/e380452227c7b3f1a817de6b5f311af1.png)
提取开始日期和结束日期的间隔月份(结束日期天 大约开始日期天时,向上+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。
![e6e0c02eddbf9b321272a86f14d9a471.png](https://i-blog.csdnimg.cn/blog_migrate/26db2a592da549d6e6acbc18e1f350c6.png)
提取间隔月份后,手动设定需要查询的间隔月份,可以是1个月,3个月,6个月,根据自身需要设定,
设定好后,使用ROUNDUP函数,计算日期间隔和设定间隔的区间段数。
![9384b63fdd8f03f95d68b6ddfbb95b99.png](https://i-blog.csdnimg.cn/blog_migrate/7a0536b5d2a099f4d5dda72ee5ec5c37.png)
随便建立一个序号表,从1往下排,类似上个帖子的日期设置表,这个表更简单,只需要序号信息。
![8895ff0330687bcd2195c93ccab46db1.png](https://i-blog.csdnimg.cn/blog_migrate/438b256bf2c6cfbdaedf5b72856dd028.png)
建立提取公式,提取扩展表的日期
名称:提取查询时间间隔
数据来源:序号表
执行时机:手动执行
筛选条件:序号表序号<=间隔段数值
填充:扩展表间隔段---序号表序号 升序
扩展表开始日期---case when [序号表_扩展表].[序号]=1 then 本报表.[日期筛选_主表].[租金开始日期] else 日期加减(m,[序号表_扩展表].[序号]-1,本报表.[日期筛选_主表].[租金开始日期]) end
扩展表结束日期----case when [序号表_扩展表].[序号]=本报表.[日期筛选_主表].[间隔段] then 本报表.[日期筛选_主表].[租金结束日期] else 日期加减(m,[序号表_扩展表].[序号]*本报表.[日期筛选_主表].[间隔段],本报表.[日期筛选_主表].[租金开始日期])-1 end
![8fb9dea879df97d9ab9f8f14035a3944.png](https://i-blog.csdnimg.cn/blog_migrate/8c419bdb4f018b2aaa896eb3eeee0c50.jpeg)
![f599bf975d1a88d6a943a8ba15aa07be.png](https://i-blog.csdnimg.cn/blog_migrate/96aa53a01d7f7ab4edd7e671426d0a20.jpeg)
![b99f3886447258cca2b7340e72f039c8.png](https://i-blog.csdnimg.cn/blog_migrate/a76eb1d8ea96556a2a176e29c4bcfe4a.png)
最终效果:
![a32c9c25264dc745d5ba5581fff7bd6b.png](https://i-blog.csdnimg.cn/blog_migrate/e6619eb57d203e502584461fc1864d82.png)
----------------------------- 优美的分割线 -----------------------------------
微信公众号:Workfine数据管理平台Workfine数据管理平台 - 首页www.bossietech.com
Workfine行业交流群:772383629
![fbd88f97d786ad43cc3653a5aa762fe9.png](https://i-blog.csdnimg.cn/blog_migrate/599c35f16764b42f0cfb4776152fbdc0.jpeg)