根据当前日期求字段中日期的季度

Oracle数据库

select
T1.INDEXCODE
,T1.CREATETIME
,CASE when T1.CREATETIME =
(case when to_char(SYSDATE,'MM')/3-1 <= 0
then TRIM(to_char(SYSDATE,'YYYY')-1)||'-'||TRIM(4+(to_char(SYSDATE,'MM')/3-1))
else TRIM(to_char(SYSDATE,'YYYY'))||'-'||TRIM(to_char(SYSDATE,'MM')/3-1)
end) then '本季度'
when T1.CREATETIME =
(case when to_char(SYSDATE,'MM')/3-2 <= 0
then TRIM(to_char(SYSDATE,'YYYY')-1)||'-'||TRIM(4+(to_char(SYSDATE,'MM')/3-2))
else TRIM(to_char(SYSDATE,'YYYY'))||'-'||TRIM(to_char(SYSDATE,'MM')/3-2)
end)
then '前1季度'
when T1.CREATETIME =
(case when to_char(SYSDATE,'MM')/3-3 <= 0
then TRIM(to_char(SYSDATE,'YYYY')-1)||'-'||TRIM(4+(to_char(SYSDATE,'MM')/3-3))
else TRIM(to_char(SYSDATE,'YYYY'))||'-'||TRIM(to_char(SYSDATE,'MM')/3-3)
end)
then '前2季度'
when T1.CREATETIME =
(case when to_char(SYSDATE,'MM')/3-4 <= 0
then TRIM(to_char(SYSDATE,'YYYY')-1)||'-'||TRIM(4+(to_char(SYSDATE,'MM')/3-4))
else TRIM(to_char(SYSDATE,'YYYY'))||'-'||TRIM(to_char(SYSDATE,'MM')/3-4)
end)
then '前3季度'
when T1.CREATETIME =
(case when to_char(SYSDATE,'MM')/3-5 <= 0
then TRIM(to_char(SYSDATE,'YYYY')-1)||'-'||TRIM(4+(to_char(SYSDATE,'MM')/3-5))
else TRIM(to_char(SYSDATE,'YYYY'))||'-'||TRIM(to_char(SYSDATE,'MM')/3-5)
end)
then '前4季度' END as 指标
from TableA t1
INNER JOIN TableB t2 on T1.indexcode = t2.indexcode
where T2.indexcode in ('I1301000019')

结果:

在报表中使用动态参数,根据所选择日期信息展示所在季度各指标

select  

CREATETIME
,CASE when T1.CREATETIME = '${jd}' then '本期'
when T1.CREATETIME =
(case when SUBSTR('${jd}',-1,1)-1<=0
then SUBSTR('${jd}',1,4)-1||'-'||(4+SUBSTR('${jd}',-1,1)-1)
else SUBSTR('${jd}',1,4)||'-'||(SUBSTR('${jd}',-1,1)-1)
end)
then '前1期'
when T1.CREATETIME =
(case when SUBSTR('${jd}',-1,1)-2<=0
then SUBSTR('${jd}',1,4)-1||'-'||(4+SUBSTR('${jd}',-1,1)-2)
else SUBSTR('${jd}',1,4)||'-'||(SUBSTR('${jd}',-1,1)-2)
end)
then '前2期'
when T1.CREATETIME =
(case when SUBSTR('${jd}',-1,1)-3<=0
then SUBSTR('${jd}',1,4)-1||'-'||(4+SUBSTR('${jd}',-1,1)-3)
else SUBSTR('${jd}',1,4)||'-'||(SUBSTR('${jd}',-1,1)-3)
end)
then '前3期'
when T1.CREATETIME =
(case when SUBSTR('${jd}',-1,1)-4<=0
then SUBSTR('${jd}',1,4)-1||'-'||(4+SUBSTR('${jd}',-1,1)-4)
else SUBSTR('${jd}',1,4)||'-'||(SUBSTR('${jd}',-1,1)-4)
end)
then '前4期' END as 季度 from table

规范日期:将字符串形式的'2019-08-01'变成‘8/1’类型

select replace(str(substring('2019-08-01',6,2)*1)+'/'+str(right('2019-08-01',2)*1),' ','')

帆软报表(finereport)根据提供的数据求出该日期所在的季度的更多相关文章

  1. 帆软报表FineReport中数据连接之Weblogic配置JNDI连接

    1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...

  2. 帆软报表FineReport中数据连接的JDBC连接池属性问题

    连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...

  3. 帆软报表FineReport中数据连接之Jboss配置JNDI连接

    使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...

  4. 帆软报表FineReport中数据连接之Websphere配置JNDI连接

    以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...

  5. 帆软报表FineReport中数据连接之Tomcat配置JNDI连接

    1. 问题描述 在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: ...

  6. 帆软报表FineReport SQLServer数据库连接失败常见解决方案

    1. 问题描述 帆软报表FineReport客户端连接SQLServer(2000.2005等),常常会出现如下错误:com.microsoft.sqlserver.jdbc.SQLServerExc ...

  7. 帆软报表FineReport数据连接中游标问题解决方案汇总

    1. 概念 在数据库中, 游标是一个十分重要的概念.游标是一种能从包括多条数据记录的结果集中,每次提取一条记录的机制. 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,往往是一个含有多个记 ...

  8. 帆软报表FineReport数据库连接编码转换

    1. 问题描述 数据库会以某种编码方式保存与读取数据,FineReport解析时默认使用GBK字符集,若数据库端编码与设计器端编码不一致时,就会导致中文及特殊字符的乱码. FineReport在定义数 ...

  9. 帆软报表(FineReport)实现跨数据源父子查询(2阶段查询)

    问题描述: 在报表中需要查询多个系统多个数据源,且有一个数据源的入参是另一个数据源的返回值.所以当用户点击查询到展现报表数据这个过程中,需要先做父查询,查询出的结果在作为子查询. 实现方案: 方案一: ...

随机推荐

  1. Jenkins_创建任务以及定时启动(2)

    一.创建任务 1.点击New Item 2.输入用户,单击Freestyle project,点击OK 3.填写构建步骤,因为是安装在linux上的,所以我们选择Execute shell,随意输入一 ...

  2. MySQL 中如何定位 DDL 被阻塞的问题

    经常碰到开发.测试童鞋会问,线下开发.测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决? 包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻塞它的 SQL ? ...

  3. Windows 10 安装 Git 与初次运行前的配置

    Windows 10 安装 Git 与初次运行前的配置 在 Windows 上安装 初次运行 Git 前的配置 用户信息 文本编辑器 检查配置信息 获取 Git 仓库 在现有目录中初始化仓库 克隆现有 ...

  4. MySQL提权之udf提权(获得webshell的情况)

    什么是udf提权? MySQL提供了一个让使用者自行添加新的函数的功能,这种用户自行扩展函数的功能就叫udf. 它的提权原理也非常简单!即是利用了root 高权限,创建带有调用cmd的函数的udf.d ...

  5. py3nvml实现GPU相关信息读取

    技术背景 随着模型运算量的增长和硬件技术的发展,使用GPU来完成各种任务的计算已经渐渐成为算法实现的主流手段.而对于运行期间的一些GPU的占用,比如每一步的显存使用率等诸如此类的信息,就需要一些比较细 ...

  6. AGC041F Histogram Rooks

    有生之年自己做出了一个 AGC F 还踩了标算,但是好像在我之前已经有人踩过标算了,再鞭尸一波也无可厚非 hhh 看到"全部被覆盖" 条件不好做,考虑容斥,即选择若干个位置强制它们 ...

  7. Android官方文档翻译 十六 4.Managing the Activity Lifecycle

    Managing the Activity Lifecycle 管理activity的生命周期 Dependencies and prerequisites 依赖关系和先决条件 How to crea ...

  8. Matlab R2019b安装中的问题

    1.licens文件以及dll文件的放置 MATLAB的安装镜像文件放置在D:\MATLAB,我们MATLAB安装在D:\MATLAB2019B,在激活过程中,我们需要破解文件夹中的license_s ...

  9. JAVA实现对阿里云DNS的解析管理

    1.阿里云DNS的SDK依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>tea-op ...

  10. [Altium Designer 学习]怎样添加3D模型

    对于为给PCB添加3D模型,很多人觉得这是个绣花针的活,中看不中用.在我看来这也未必,特别是常用的3D模型能在网上下载的今天,只需要几个简单的操作,就能使你的PCB更加赏心悦目.除此之外,3D模型还有 ...