Oracle10g 给定日期范围内Oracle每周累计总计

Oracle10g 给定日期范围内Oracle每周累计总计,oracle10g,Oracle10g,我正在使用以下查询获取给定日期范围内每周的列总数 SELECT to_char(week_start - 1, 'dd-MON-yy') week_end, run_qty, acc_qty, CASE WHEN run_qty <> 0 THEN ROUND(acc_qty/run_qty, 4) ELSE 0 END pct FROM (SELECT week_start, SUM(run_qty) run_qty, SUM(acc_qty) acc_qty

我正在使用以下查询获取给定日期范围内每周的列总数

SELECT to_char(week_start - 1, 'dd-MON-yy') week_end, run_qty, acc_qty, CASE WHEN run_qty <> 0 THEN ROUND(acc_qty/run_qty, 4) ELSE 0 END pct

  FROM (SELECT week_start, SUM(run_qty) run_qty, SUM(acc_qty) acc_qty

          FROM (SELECT TRUNC(NEXT_DAY(TRUNC(created_date), 'Monday')) week_start, NVL(SUM(run_qty), 0) run_qty, NVL(SUM(accepted_qty), 0) acc_qty

                  FROM shema.table_a 
                  WHERE (some conditions)
                    AND created_date BETWEEN :FromDate AND :ToDate 
                  GROUP BY TRUNC(NEXT_DAY(TRUNC(created_date), 'Monday'))
                 UNION
                 SELECT TRUNC(NEXT_DAY(TRUNC(to_date(zday, 'dd-mon-rrrr')), 'Monday')) week_start, 0run_qty, 0acc_qty
                   FROM (SELECT :FromDate + (level - 1) zday
                           FROM dual
                         CONNECT BY LEVEL <= (:ToDate - :FromDate)))
          GROUP BY week_start
          ORDER BY week_start desc)
输入参数为:FromDate=4/31/2015和:ToDate=6/25/2015,这将为我提供每周的最后一天,定义为周一-周日,每周的跑步总数,每周接受的总数,以及每周接受的跑步总数的pct,结果集如下所示

2015年6月28日0

2015年6月21日100 50 0.5

2015年6月14日50 40 0.8

2015年6月7日0

2015年5月31日0

2015年5月24日50 40 0.75

2015年5月17日80 50 0.625

2015年5月10日60 20 0.3333

2015年5月3日0

我是否可以使用类似的方法来计算运行和验收数量的运行总数,以及在提供的日期范围内验收数量的百分比?给我一个结果集,看起来像

2015年6月28日340 200 0.5882

2015年6月21日340 200 0.5882

2015年6月14日240 150 0.625

2015年6月7日190 110 0.5789

2015年5月31日190 110 0.5789

2015年5月24日190 110 0.5789

2015年5月17日140 70 0.5

2015年5月10日60 20 0.3333


2015年5月3日我想起来了。。。如果有人在搜索类似问题的解决方案时遇到此线程,我将上面的查询包装在。。。 选择周末、运行数量、附件数量、pct

从上面的查询 模型 订单上的维度BYrow\u编号截止日期周结束日期'dd MON yy'asc rec

测量周末、运行数量、acc数量、pct

规则

运行数量[rec>1]按rec订购=运行数量[cv]+运行数量[cv-1]

附件数量[rec>1]按附件订购=附件数量[cv]+附件数量[cv-1]

pct[rec>=0]按rec下单=运行数量[cv]0时的情况,然后循环运行数量[cv]/运行数量[cv],4否则0结束

订单截止日期:本周结束日期:描述 …而且运行速度很快,给了我预期的结果