报表业务逻辑

一个周报按周扩展,求每周的一个活跃卡数量,这个活跃卡数量规则定义为当前周最后一天往前30天来判断,这个怎么求

FineReport 赵超凡 发布于 2021-12-16 13:46
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
墨残烛Lv5初级互助
发布于2021-12-16 13:59

没理解你的意思,一会周一会月的

  • 赵超凡 赵超凡(提问者) 每周的最后一天往前推30天,求出这个区间里的数量怎么和周关联
    2021-12-16 14:02 
  • 墨残烛 墨残烛 回复 赵超凡(提问者) 有没有一个实际的例子啊,这意思是这周网上推30天,下周往上推30天就包括了这周在里面?
    2021-12-16 14:06 
  • 赵超凡 赵超凡(提问者) 回复 墨残烛 这周往上推30天,这个阶段的数量属于这周的;下周往上推30天,这个阶段数量属于下周的
    2021-12-16 14:11 
最佳回答
0
木木ynLv5见习互助
发布于2021-12-16 14:10(编辑于 2021-12-16 14:11)

这个是我用的周数写法,你可以参考下

SELECT A.* FROM (

    SELECT  to_char(dateTime , 'yyyy-mm-dd')  KSRQ 

    , to_char(dateTime+6, 'yyyy-mm-dd')  JSRQ 

    , TO_CHAR(dateTime,'WW')  ZS 

FROM  

(  select dateTime,Rownum rn 

   from   

     (with t as

        (select rownum-1 rn from dual connect by rownum<=10000)

      select to_date('2021-01-01','yyyy-mm-dd')+ rn as dateTime 

      from t 

      where to_date('2021-01-01','yyyy-mm-dd') + rn < to_date('2021-12-31','yyyy-mm-dd') --查下年份

     ) b 

   where to_char(b.dateTime, 'day') = '星期六'  

)

) A

where 1=1 

${IF(LEN(ZS)==0,"","AND ZS <='"+ZS+"'")} --查询第几周

最佳回答
0
E8mE1639Lv5见习互助
发布于2021-12-16 15:24(编辑于 2021-12-16 15:36)

with a as 

select 1 col union all 

select 2  union all 

select 3  union all 

select 4  union all 

select 5  union all 

select 6 

) ,b as 

select dateadd(day,-30,dateadd(day,col,getdate())) 开始时间, dateadd(day,col,getdate()) 结束时间  

from a 

where  datepart(dw,dateadd(day,col,getdate())) = 7 

select sum(活跃卡数量) 活跃卡数量 from 表 cross join b where 表.日期 > b.开始时间 and 表.日期 <= b.结束时间

  • 赵超凡 赵超凡(提问者) 这样做是没错的,但是怎么关联每周;就比如:12.19是本周末,sql可以求出它30天的数量,但是怎么让这个sql里面的字段关联12.19这个字段呢,因为周报是按照每周扩展的,所以得注意关联问题,主要不知道怎么关联
    2021-12-16 17:22 
  • 4关注人数
  • 470浏览人数
  • 最后回答于:2021-12-16 15:36
    请选择关闭问题的原因
    确定 取消
    返回顶部