Oracle查询连续年,月,日的数据

报表开发有时候需要查询连续时间的数据,但是如果中间有一些时间没有数据,就会导致查询出来的时间不连续。
例如:

-- 年, 品牌,销售额
create table SALES_INFO
(year    NUMBER(4),brand   VARCHAR2(30),sales   NUMBER
)
insert into SALES_INFO values (2022, 'x', 100);
insert into SALES_INFO values (2018, 'x', 100);
insert into SALES_INFO values (2019, 'x', 100);
insert into SALES_INFO values (2021, 'x', 100);
commit;

需要查询x品牌连续5年(2018-2022)的数据,但是没有2020年的数据,正常单表查询就会导致查询出来的结果中间少了2020年的那一行。

解决方法

使用left join,将连续的时间left join业务表,查询x连续5年的结果

select a.year, 'x' as brand, b.salesfrom (select (2022 - rownum + 1) as year from dual connect by rownum < 6) aleft join (select * from SALES_INFO) bon a.year = b.yearorder by a.year


连续几月和几天的数据,如果没有数据的显示为空也是同理

连续几月SQL

select to_char(add_months(to_date('202201', 'YYYYMM'), rownum), 'yyyymm') as monthfrom dual
connect by rownum < 6

一周连续七天

一周连续7天SQL

select to_char(sysdate - to_number(to_char(sysdate, 'D')) + level+1, 'YYYY-MM-DD') dayfrom dual
connect by level <= 7

Oracle查询连续几年,几月,几天的数据相关推荐

  1. oracle查询一小时内数据,ORACLE 查询近一天, 近半小时内的数据

    ORACLE 查询近一天, 近半小时内的数据 SELECT 字段 FROM 表名 WHERE 时间字段 BETWEEN SYSDATE-1 AND SYSDATE; // 查询一天内的数据 sysda ...

  2. Oracle查询当前时间的前1个小时的数据

    测试:11:05查询10:00:00~10:59:59的数据 --例如查询09:00:00~09:59:59之间的数据 SELECTTO_CHAR(CRTE_DATE,'yyyy-mm-dd hh24 ...

  3. oracle 查询一年12个月的sql,获取今年在内的前几年、后几年

    -- 一年12月的sql select to_char(sysdate, 'yyyy-') || lpad(level, 2, 0) datevaluefrom dual connect by lev ...

  4. oracle 查询一年12个月的sql

    select to_char(sysdate, 'yyyy-') || lpad(level, 2, 0) datevalue from dual connect by level < 13

  5. mysql查询连续三天100以上_一个SQL查询连续三天的流量100以上的数据值【SQql Server】...

    题目 有一个商场,每日人流量信息被记录在这三列信息中:序号 (id).日期 (date). 人流量 (people).请编写一个查询语句,找出高峰期时段,要求连续三天及以上,并且每天人流量均不少于10 ...

  6. oracle查询备份大小,【EXPDP】使用EXPDP备份数据时预估大小——ESTIMATE参数

    使用EXPDP在完成数据导出时,可以使用ESTIMATE参数评估待导出数据库对象的大小,简单演示一下,供参考.1.查看有关ESTIMATE参数的帮助信息1)查看命令行帮助信息ora10g@secDB ...

  7. oracle+获取最后一行数据库,获取表最后一条数据

    数据库中如何查询表的最后一条记录? MySql : SELECT * FROM 表名 ORDER BY 表_ID DESC LIMIT 1 SQLServer/Oracle : SELECT TOP ...

  8. oracle的查询连续半个月或者一周的数据

    oracle的查询连续半个月或者一周的数据 使用 between and 来查询,如下: 看到当前日期是1-29 再看下查询表的所有数据,可以看到21号到29号有一段连续的数据 然后我们查询今天起倒推 ...

  9. oracle号码段拆开,学习-SQL查询连续号码段的巧妙解法

    学习-SQL查询连续号码段的巧妙解法 在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里. 最初的问题是这样的:我有一个表结构, fphm,kshm 2014,00000001 2014, ...

最新文章

  1. 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝
  2. Ansible基础一Playbook(二)
  3. Closing Spring root WebApplicationContext
  4. 023_运行时变量和范围
  5. ASP.NET Core 集成 React SPA 应用
  6. 一些来自STL的好东西
  7. 转录组差异表达分析工具Ballgown
  8. cesium label 显示隐藏到地底下
  9. 线性代数向量乘法_标量乘法属性1 | 使用Python的线性代数
  10. 【转载】Android之用PopupWindow实现弹出菜单
  11. 英特尔发布P900 Optane固态盘 而主打的市场并非数据中心
  12. python支持arcpy的版本_ArcPy开发IDE
  13. PPT图形的多种玩法(师从于珞珈老师)
  14. vue jsonp跨域
  15. Base64编码简介
  16. qt5的configure选项说明(2)
  17. RSA 中根据 (N, e, d) 求 (p, q)
  18. 五环电阻和四环电阻的区别是什么
  19. HTML侧面导航栏效果
  20. 手写tomcat socket closed_ipad pencil2019防误触电容笔苹果air3触屏控手写笔mini5绘画202010元优惠券券后价65元...

热门文章

  1. 暑期python学习感悟
  2. JavaScript冷门知识
  3. iOS - 仿微信朋友圈视频剪切功能
  4. android自动回复退订,[原创]某聊天app自动回复
  5. 西门子PLC学习笔记四-(控制三项异步电动机的启动停止)
  6. 【2022保研】双非上岸东南网安
  7. 爬虫如何实现每天爬取,定点爬取[以股票数据为例]
  8. 红外测试黑色样品与块状样品
  9. 说说让美国老百姓头疼的县城民法,你了解这些吗?
  10. 关于mysql大于号小于号是否会使用到索引