oracle select的结果,没有的月份qty中补0

oracle select的结果,没有的月份qty中补0,第1张

--代码中1=1是用来写你的过滤条件的

--代码中的表A,写你原来的表名

SELECT T3MONTH, T3CUST, T3ITEM, NVL(T4QTY, 0)

  FROM (SELECT MONTH, CUST, ITEM

          FROM (SELECT TO_CHAR(201600 + ROWNUM) AS MONTH

                  FROM DUAL

                CONNECT BY ROWNUM <= 12) T1,

               (SELECT CUST, ITEM FROM 表A WHERE 1 = 1 GROUP BY CUST, ITEM) T2) T3

  LEFT JOIN

--T4这一段查询SQL也就是你提供的那段分组的查询,你可以自己调整

 (SELECT Month, Cust, Item, SUM(QTY) AS QTY

    FROM 表A

   WHERE 1 = 1

   GROUP BY Month, Cust, Item) T4

    ON T3MONTH = T4MONTH

   AND T3CUST = T4CUST

   AND T3ITEM = T4ITEM

有问题可以追问,或者私聊

oracle判断连续几个月为0的最大间隔时间,原数据包含记录行生成的时间戳字段OP_TIME和一个自增序列中间可能不连续的单据编号 SWF_NUM,概括起来最大间隔时间为:相邻两条记录的时间戳间隔不超过10分钟。以下是具体的间隔时间 *** 作方法:要求统计相邻两条记录的时间戳间隔不超过10分钟的最大连续记录数,整体思路是:筛选出结果集,处理结果集,对结果集中符合条件和不符合条件的记录打上标签。

过滤掉符合条件的记录,使用 ROW_NUMBER对查询结果第二次排序编号,第三次处理结果集:ROW_NUMBER=ROW_NUMBER1对第二次处理得到的结果集自关联。

同时,通过 ROW_NUMBER() 对结果集排序编号,第二次处理结果集:对处理好的结果集通过 ROWNUMBER=ROW_NUMBER1自关联。

在查询结果中将第一次的排序编号相减,差值-1就是连续记录数,对上述结果分组取最大值,得到最大连续记录数。

现在用ROWNUMBER对筛选好的源数据排序,自关联比较相邻记录的时间差,对符合要求的记录通过ROW_NUMBER在排序,得到的结果通过第二次的ROW_NUMBER值自关联。

在查询结果中用第一次的ROW_NUMBER值求差,差值就是符合条件的连续记录数,分组后取最大值,得到结果。

可以先把日期类型通过 TO_CHAR方法转换为字符串,之后在进行月份查询。

sql:select from tablename WHERE TO_CHAR( dateTime, 'YYYY-MM') = '2015-06';

解释:以上语句就是查询查2015年06月份的所有数据记录。

1、创建测试表,

create table test_date_2(id int, v_date date);

2、插入测试数据

insert into test_date_2 values(1,sysdate);

insert into test_date_2 values(2,sysdate-20);

insert into test_date_2 values(3,sysdate-30);

insert into test_date_2 values(4,sysdate-40);

commit;

3、查询表中全量数据,select t from test_date_2 t;

4、编写语句,查询当月份的上一个月;

 select t, add_months(v_date,-1) v_date2 from test_date_2 t;

以上就是关于oracle select的结果,没有的月份qty中补0全部的内容,包括:oracle select的结果,没有的月份qty中补0、oracle判断连续几个月为0的最大间隔时间、oracle如何取出包含月份的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10151673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存