Hana视图创建步骤以及问题
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
注:目前操作中遇到的问题和函数总结在内,后续会更新
一 属性视图(维度、时间、等级、衍生,多个主数据关联)
1.选择相应的包,右键包名字,选择属性视图,如下图1:
图1
2.输入视图name,description后,点击finish。
图2
3.点击HNSD/Attrbute View/ATT_TEST视图,出现如下图3所示:
图3
4.选择相应维度表,拖拽到设计区域的Data Foundation区域,选择相应字段输出,如下图4所示,也可以在右侧output〉〉calculated columns新建计算列
图4
5. 设置主键字段,选择输出字段,把key attribute由false改为true,如图5:
图5
6.保存、激活编译 ,如图6所示
图6
7.预览数据,在图的右侧可以以表或者图形的形式查看数据,如图7所示:
图7
二 分析视图(星型结构,多个事务度量)
1.选择相应的包,右键包名字,选择分析视图,如下图8:
图8
2.输入分析视图name,description后,点击finish,如图9:
图9
3.Finish之后,进行属性视图和事实表的拖拽,如图10:
图10
4.属性视图和事实表的关联,如图11所示:
图11
5.看输出列中是否有measures属性的度量列,如果没有可以增加事实表的度量列输出,如果事实表没有度量列,可以新建列(计算列),如图12所示:
图12
6.进行编译,激活,预览数据,如图13所示:
图13
三 计算视图
1. 选择相应的包,右键包名字,选择计算视图,如下图14:
2. 输入名称和备注,选择视图类型:图表或者脚本
图15
3. 目前用的比较复杂,选用sql script 形式,按照如图3步进行操作,如图16
图16
4. 手动写入输出列(与所写脚本的字段名字和类型应该一样),如图17所示
图17(合并一块截图)
5. 编译预览数据
6. 如果利用图标创建的视图,按照图中步骤操作,如图18所示:
注:一般默认有上下2个组件,如果要添加过滤条件需要从左侧拖拽projection组件
图19
7. 点击Aggregation组件,选择要添加条件的列,右键apply filters,添加过滤条件(只能用自建的输入参数,如果要添加具体值的过滤在semantics输出的时候添加过滤),在如图20:
图20
8. 编译、激活预览数据
三 问题总结以及解决办法
1. 问题:创建属性视图时候出现如下错误:
No central table found. No attribute has been specified as a key
解决办法:设置主键字段,把false改为true,如图下图
2.问题:创建分析视图时候报如下错误:
Message :
Internal deployment of object failed;Repository: Encountered an error in repository runtime extension;Internal Error:XML Error: No Measures defined
解决办法:关联后由于输出字段中没有度量值,可以新建计算列或者输出度量列
三 HANA函数用法
● 日期时间类型转化
to_timestamp( concat(substr(to_char(:DATE_,'yyyy-mm-dd'),1,7),'-01 00:00:01')) 或者to_timestamp(now())
● HANA数据库虚拟表
select to_date('2013-12-12','yyyy-mm-dd') from dummy (数据库虚拟表)
● 分析视图添加新的列,不能修改之前的列,可以添加新列形式处理原表和视图列
点击分析视图 logical join>>calculated columns,出现如下界面
注意条件
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
,在这里只能用if 而不能用map(脚本写可以用map)
● 计算视图cal_test写脚本图和引用普通视图V_test (直接写普通视图名称)
select issue as qmdate,jtys as zbz from "VIEW_LDJSC_ZBCBYS" a
注:“as”可以不加
● 计算视图分层级计算(1级2级3级计算)
● 求取某天是当年第几周2种方式:
1. rightstr(ISOWEEK (DATE('2014-02-27')),2)
2.在sql console中
SELECT substr(ISOWEEK (TO_DATE('2014-02-27', 'YYYY-MM-DD')),7,2) "isoweek" FROM DUMMY;
● CE函数用法
ce_col1=ce_column_table("DW"."T_WZ_FACT_SFC",["RQ","QCJE","BUKRS"]);
--查询表
ce_col2=ce_join_view("_SYS_BIC"."DW.YW.WZ/ATT_WZ_ORG",["DEPT_GS","DEPT_DC","SAPID"]);--查询属性视图
ce_projec_1=ce_projection(:ce_col1,["RQ", "BUKRS" as "SAPID","QCJE"],'"SAPID"=5110');
注:“SAPID”是一个别名可作为查询条件字段用,条件必须用SAPID,而不能用BUKRS
ce_join_1=CE_JOIN(:ce_projec_1,:ce_col2,[SAPID],[RQ,SAPID,DEPT_GS,DEPT_DC,QCJE]);
var_out2=CE_PROJECTION(:var_out1,[RQ,CE_CALC('"RQ"',VARCHAR)AS ISSUE,QCJE]);
var_out= SELECT RQ,QCJE FROM :ce_join_1;--选择查询需要的列
● CE_PROJECTION
aa=ce_column_table("DW"."AS_YX_SCRB_HZ_LJ",[issue,jz_id,edrl]);
var_out=ce_projection(:aa,[issue,jz_id,edrl],'"JZ_ID"!=1 AND "EDRL">=30 AND "EDRL"<=30' );
● 计算视图引用输入参数,2中格式区分
1.sql 直接引用:d.issue >= :symd_start and d.issue <= :symd_end
2.引用其它视图引用: "_SYS_BIC"."HNSD.PARA_TEST/CAL_1_CDW_HZ_DAY" (PLACEHOLDER."$$start_date$$"=>to_char(to_date(ifnull(:symd_start,'2099-01-01'),'YYYY-MM-DD'),'YYYY-MM-DD'), PLACEHOLDER."$$end_date$$"=>to_char(to_date(ifnull(:symd_end,'2099-01-01'),'YYYY-MM-DD'),'YYYY-MM-DD'))