-
-
北斗星君 数据小白Lv1
发表于2024-9-5 18:26
楼主
报表需要做同比环比的比较,然后在做比上季度末的时候,发现od函数不支持转换季末这个日期。折腾半天写出来
if(JIDU(@bbq)=1,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m-1',d=lastday')
,if(JIDU(@bbq)=2,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+1',d=lastday')
,if(JIDU(@bbq)=3,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+3',d=lastday')
,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+5',d=lastday'))))
可以求出日期参数@bbq的上季度末的日期。同样的本季度末日期也可以求,季初应该也可以。既然用现有的函数就能实现,希望ABI能够封装个季度日期相关的函数,这样就不用这么麻烦了。
if(JIDU(@bbq)=1,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m-1',d=lastday')
,if(JIDU(@bbq)=2,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+1',d=lastday')
,if(JIDU(@bbq)=3,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+3',d=lastday')
,od(STRTODATE(STRCAT(YEAR(@bbq),'0',ASSTR(JIDU(@bbq)),'01'),'yyyymmdd'),'m+5',d=lastday'))))
可以求出日期参数@bbq的上季度末的日期。同样的本季度末日期也可以求,季初应该也可以。既然用现有的函数就能实现,希望ABI能够封装个季度日期相关的函数,这样就不用这么麻烦了。