码迷,mamicode.com
首页 > 数据库 > 详细

Oracle实现统计根据时间段统计累积销售量

时间:2021-06-02 13:36:21      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:group by   tin   比较   sele   bug   to_char   har   sys   acl   

自己出了一个题,原本打算配合分析函数完善数据的,结果发现使用分析函数反而走偏了,如题:

根据时间段(精确到月)按月查询时间段内截止当前月份最后一刻各物品的累积销售量,
(比如传入时间参数2021-04到2021-05月)即分别统计从产生数据开始截止4月末各物品销售累积量和截止5月末各物品累积量

示例数据

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘01-02-2021‘, ‘dd-mm-yyyy‘), ‘002‘, ‘物品A‘, 5, 500);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘03-02-2021‘, ‘dd-mm-yyyy‘), ‘001‘, ‘物品A‘, 2, 200);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘12-04-2021‘, ‘dd-mm-yyyy‘), ‘008‘, ‘物品A‘, 3, 300);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘24-04-2021‘, ‘dd-mm-yyyy‘), ‘007‘, ‘物品A‘, 5, 500);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘07-05-2021‘, ‘dd-mm-yyyy‘), ‘010‘, ‘物品A‘, 3, 300);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘16-05-2021‘, ‘dd-mm-yyyy‘), ‘011‘, ‘物品A‘, 5, 500);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘18-02-2021‘, ‘dd-mm-yyyy‘), ‘003‘, ‘物品B‘, 3, 150);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘11-04-2021‘, ‘dd-mm-yyyy‘), ‘006‘, ‘物品B‘, 3, 150);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘18-05-2021‘, ‘dd-mm-yyyy‘), ‘012‘, ‘物品B‘, 1, 50);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘08-03-2021‘, ‘dd-mm-yyyy‘), ‘005‘, ‘物品C‘, 8, 560);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘13-03-2021‘, ‘dd-mm-yyyy‘), ‘004‘, ‘物品C‘, 6, 420);

insert into T_TABEL (时间, 单号, 物品, 销售量, 销售金额)
values (to_date(‘11-04-2021‘, ‘dd-mm-yyyy‘), ‘009‘, ‘物品C‘, 1, 70);

最先想到用分析函数实现,结果出BUG了,如果某月没销售过某物品,那么这个月将统计不到这个物品的累积销售,绕来绕去虽然能达到最终效果但是太过混乱,实际上效率各方面的也比较拙劣

后面又想到个方式实现,以此记录,

SELECT b.sj 时间,
a.物品,
SUM(a.销售量)
FROM T_TABEL A,(SELECT DISTINCT to_char(b1.时间,‘yyyy-mm‘) sj FROM T_TABEL b1 WHERE b1.时间>=TRUNC(SYSDATE-50)) b
WHERE to_char(a.时间,‘yyyy-mm‘) <=b.sj
GROUP BY b.sj,
a.物品
ORDER BY b.sj,
a.物品

Oracle实现统计根据时间段统计累积销售量

标签:group by   tin   比较   sele   bug   to_char   har   sys   acl   

原文地址:https://www.cnblogs.com/ZwyBky/p/14819999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!