oracle ytd,hana ytd计算

YTD解答方案

要求:输出字段: 年月, YTD金额

因为我这边只有system一个账号,就用system账号写

合同表的结构和数据如下:

create column table "SYSTEM"."CONTRACTS"

("CONTRACT_ID" INTEGER null,  --合同ID

"START_DATE" DATE null,  --开始日期

"END_DATE" DATE null,           --结束日期

"AMOUNT" DECIMAL (18,2) null)     --每月金额

insert into " SYSTEM "."CONTRACTS" VALUES(1,'2012-04-01', '2013-06-30',100);

insert into " SYSTEM "."CONTRACTS" VALUES(2,'2013-07-01', '2015-03-31',100);

insert into " SYSTEM "."CONTRACTS" VALUES(3,'2014-02-01', '2015-07-31',100);

insert into " SYSTEM "."CONTRACTS" VALUES(4,'2014-05-01', '2016-10-31',100);

insert into " SYSTEM "."CONTRACTS" VALUES(5,'2014-07-01', '2015-05-31',100);

insert into " SYSTEM "."CONTRACTS" VALUES(6,'2015-01-01', '2016-02-29',100);

insert into " SYSTEM "."CONTRACTS" VALUES(7,'2015-08-01', '2016-09-30',100);

insert into " SYSTEM "."CONTRACTS" VALUES(8,'2014-02-01', '2014-12-31',100);

insert into " SYSTEM "."CONTRACTS" VALUES(9,'2015-02-01', '2015-03-30',100);

日期表结构, 自行设计. 日期表要具有通用性, 不允许包含任何合同信息.

要求:建立一个带参数计算视图, 分别用SQL语句和图形的方式建立.

建立一个存储过程,每个月计算YTD,如何计划执行该存储过程。

输入时间参数201406-201506 求YTD

从题目的要求中不难看出有以下几个要求:

1.弄清楚YTD概念(YTD是year to date的缩写)意思是:到现在为止的一年,最近的一年

2.日期表需要自行设计

3.建立计算视图 图形和sql语句两种

4.还需要写一个procedure

5.还需要设置一个过滤器来筛选时间

过程:

首先,我对合同表的时间进行分析 可以联想时间格式设置为YYYYMM所以我对时间表的设计即可以设置Year、Month和YM但是我们可能后续还需要对其进行计算 所以在放入两个int型的数据Year_int and Month_int。在日期表中多加入一个伪列JOIN作为join列 在后续的方法中连接。设计完毕后,添加数据。

首先争对合同表与日期表进行创建与加入数据(下图为表位置与表结构)

3419af117bf5372526fa250b6d2f50d2.png

0fe89bddd8f4f684455a0401f2f417ae.png

b69c546043d3dd1bbda9f2e521732c70.png

接下来创建合同表的计算视图,为了将日期格式都设置为YYYYMM格式 所以我们可以用一些函数记性设计

5612c5a56d02c8053355349704e705cf.png

我要为合同表添加一下几个字段来方便计算运用,起始时间START_TIME(varchar类型,格式为‘yyyyMM’)、结束时间END_TIME(varchar类型,格式为‘yyyyMM’)、与日期表JOIN字段列(integer类型,格式为‘1’)、开始年、开始月、结束年、结束月(统为integer类型)

如下图:

b1bdf5a9a5e1c229381c3b4eca370877.png

02e2089afa0eadb41336415abea27cc4.png

353a8d84388efb28fd47540a064e0b4d.png

最后就是进行YTD的计算了,因为在分析模型中 我们对合同表也插入了一行伪列JOIN所以我们可以用join将其连接起来,

8764c7cebaa51d723db2d583d7b73b20.png

然后在里面join_1添加flag字段目的是去掉合同表日期与日期表日期不相关的数据(只有月份大于等于start并且小于等于end才可以通过)。

cb9b4475795715f81ee01fd8cc43cbf4.png

过滤后 就要进行YTD计算,在projection_3里面写了一个YTD计算(YEARMONTH小于等于END_TIME的时候 跳转到 另一个if中 如果YEAR_INT=START_YEAR_INT则代表同年 直接MONTH_INT-START_MONTH_INT即可 如果不是则代表不同年 所以用MONTH_INT即可)

d18f0cada06bb79fc398a3deccd34e09.png

最后在Semantics中设置维度和度量 以及对YEARMONTH添加过滤器

a2fd0e2bf18fc2350be3949e7c96a000.png

cdde4d140ebcfbe9776c4b248eb27f0b.png

这样图形创建计算视图就解决了

接下来sql语句创建计算视图,首先需要添加以下几个计算列,START_TIME、END_TIME、YAERMONTHS,计算方法按照YTD计算就可以了

67fe8b27b1c43e30e16c8e191157ea08.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python time mktime()方法

描述 Python time mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。 如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。 语法 mktime()方法语法&…

linux 识别文件类型,技术|Linux 中 7 个判断文件系统类型的方法

文件通过文件系统在磁盘及分区上命名、存储、检索以及更新,文件系统是在磁盘上组织文件的方式。文件系统分为两个部分:用户数据和元数据(文件名、创建时间、修改时间、大小以及目录层次结构中的位置等)。在本指南中,我们将用 7 种方法来识别你…

二分归并排序算法_第五篇排序算法|归并排序

0x01,前言闲叙最近几年很少看电视了,因为没时间看了,除了偶尔刷刷头条,基本上不会花大块的时间沉迷于电视剧,综艺,这或许就是短视频时代所带来的一些改变吧,我们都会深受其中。0x02,…

Python time asctime()方法

描述 Python time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。 语法 asctime()方法语法: time.asctime([t])) 参数 • t – 9个元素的元组…

linux系统访问文件夹ls,Linux系统目录结构,文件类型以及ls、alias命令

一、Linux目录结构登录系统之后,在当前命令窗口输入以下指令,/是Linux操作系统里最核心的一个目录,所有的文件和目录全部在它下面,所以称为“根目录”:# ls / //列出根目录下的文件得到如图结果:如图上图所…

我所理解的闭包

闭包最主要概念:有权访问另一个函数作用域内变量的函数 function add(){var result;result function(x,y){return yx } return result }var sum new add(); console.log(sum(10,20))/*30*/ 函数会执行的主要原因就在于() function createFunct…

qq文件对方接收后一定会有提示吗_为什么微信、QQ不推出已读功能?因为它敢出网友就敢卸载...

12月14日,腾讯 QQ突然发起了一个"很吓人"的调查——你希望 QQ 出已读功能吗?在短时间内,有 超过3000 人参与,其中有 2660 人(71.6%)投票 "你出我就卸载 QQ"选项,大家旗帜鲜明地表示,并…

Python time localtime()方法

描述 Python time localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。 DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令时。 语法 localtime()方法语法: time.localt…

实例11:python

#古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, #小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? #!/usr/bin/python -- coding: UTF-8 -- #兔子的规律…

linux c c 常用的日志库,mslog: 一款超轻量级的C日志库,无需依赖额外的库,测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备;...

mslog1.综述​ 一款超轻量级的C日志库,无需依赖额外的库,库的设计目标为"简洁,可移植性强"。测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备。2.如何使用参考mslog_api_sample程序;关于编译与安装,可参见make help;3.功…

Vue中正确使用jQuery的方法

题主Vue小白,入门demo时想在其中使用jQuery(当然可能是不推荐的做法哈,毕竟俩儿的风格不一样,但万一你就需要呢 _^ ^_),结果遇到问题,最终倒腾解决。 编译报错:$ is undefined or no…

python中superclass是什么_深度解析并实现python中的super(转载,好文)

大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识。原文链接:https://blog.csdn.net/zhangjg_blog/article/details/83033210深度解析并实现python中的super概述super的定义函数bound和描述…

实例12:python

#判断101-200之间有多少个素数,并输出所有素数。 #程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 #!/usr/bin/python -- coding: UTF-8 -- #…

linux显示gz文件字节大小,[原创] 如何不解压tar.gz文件查看其中的文件大小

如果你有一个上百G的tar.gz文件,要查看里面的每个文件的大小的话,解压出来可能太费时间,而且要占用大量磁盘空间。因此,不解压查看文件大小很有必要。不解压一个tar.gz文件,查看里面的文件明细的命令为:tar…

javascript用户登录_SAP HANA XS的JavaScript安全事项

公众号:matinal前言部分我们都知道web程序都有潜在的安全隐患问题,那么SAP HANA XS的JavaScript也是一样,使用服务器端JavaScript编写应用程序代码,也有潜在的外部攻击(和风险)。注意事项下面列出几点注意事…

周进度报告8

在本周中主要因为c小学期,对Java的学习较少,下周会合理安排时间转载于:https://www.cnblogs.com/NCLONG/p/9574965.html

Python sqrt() 函数

描述 sqrt() 方法返回数字x的平方根。 语法 以下是 sqrt() 方法的语法: import math math.sqrt( x ) 注意:sqrt()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。 参数 • x – 数值表达式。 返回值 返回数字x的平方根。 实例…

linux 网络设备 安装,Linux_Linux系统配置网络详解,一.安装和配置网络设备- phpStudy...

一.安装和配置网络设备在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的ip地址,缺省网关的ip地址,DNS的ip地址等等.根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去.但是我们一定要了解加载网卡驱动程序…

python透明图片合并_Python用OpenCV合并图片,添加透明部分

看了python网上图片合并都是互抄,其实大部分人需要的合并只需要把一个图片粘贴到另一张图片就行了。下面是合并前的图片:底图下面是需要合并的素材:需要合并的素材合并后的效果:合并后的图片图片准备工作:1: 确保两张图…

实例13:python

#题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为1531的三次方+5的三次方+3的三次方…