东莞建网站哪家强,合肥网站建设平台,宁波外贸公司排行,网站建设原因分析YTD解答方案要求#xff1a;输出字段: 年月, YTD金额因为我这边只有system一个账号#xff0c;就用system账号写合同表的结构和数据如下:create column table SYSTEM.CONTRACTS(CONTRACT_ID INTEGER null, --合同IDSTART_DATE输出字段: 年月, YTD金额因为我这边只有system一个账号就用system账号写合同表的结构和数据如下:create column table SYSTEM.CONTRACTS(CONTRACT_ID INTEGER null, --合同IDSTART_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.还需要写一个procedure5.还需要设置一个过滤器来筛选时间过程首先我对合同表的时间进行分析 可以联想时间格式设置为YYYYMM所以我对时间表的设计即可以设置Year、Month和YM但是我们可能后续还需要对其进行计算 所以在放入两个int型的数据Year_int and Month_int。在日期表中多加入一个伪列JOIN作为join列 在后续的方法中连接。设计完毕后添加数据。首先争对合同表与日期表进行创建与加入数据(下图为表位置与表结构)接下来创建合同表的计算视图为了将日期格式都设置为YYYYMM格式 所以我们可以用一些函数记性设计我要为合同表添加一下几个字段来方便计算运用起始时间START_TIME(varchar类型格式为‘yyyyMM’)、结束时间END_TIME(varchar类型格式为‘yyyyMM’)、与日期表JOIN字段列(integer类型格式为‘1’)、开始年、开始月、结束年、结束月(统为integer类型)如下图最后就是进行YTD的计算了因为在分析模型中 我们对合同表也插入了一行伪列JOIN所以我们可以用join将其连接起来然后在里面join_1添加flag字段目的是去掉合同表日期与日期表日期不相关的数据(只有月份大于等于start并且小于等于end才可以通过)。过滤后 就要进行YTD计算,在projection_3里面写了一个YTD计算(YEARMONTH小于等于END_TIME的时候 跳转到 另一个if中 如果YEAR_INTSTART_YEAR_INT则代表同年 直接MONTH_INT-START_MONTH_INT即可 如果不是则代表不同年 所以用MONTH_INT即可)最后在Semantics中设置维度和度量 以及对YEARMONTH添加过滤器这样图形创建计算视图就解决了接下来sql语句创建计算视图,首先需要添加以下几个计算列START_TIME、END_TIME、YAERMONTHS计算方法按照YTD计算就可以了