...
以产品Demo数据源northwind数据库下的【orders】表为例,由于每天的订单数据很大,需要增加时间过滤进行查询;
具体的操作步骤如下:
1)创建数据模型并在模型中增加 “SQL查询”
如上图所示:
- where {[字段=${ParamName}]}参数是动态值,"{[]}"代表参数默认值可不填写,不填写代表查询全部数据;
- 如果 where 字段=${ParamName},这种写法也支持,但是参数默认值必填,否则执行不通过;
- 如果在模型中的[参数管理]进行了关联映射,可以随着模型设置的默认值改变输出结果集;具体可参考:参数管理
- 参数数据类型,默认是字符串,用户可以选择与SQL查询条件字段匹配的数据类型:日期、日期时间、时间、整型、浮点型、长浮点型、其他.
2) 如果用户写好了SQL查询,想回到数据模型,建议先点击【保存】之后再点击【回到模型】;可以在模型修改数据类型、修改别名、设置与其他查询的关系或者构建数据模型.
2.2 通过参数控制权限
业务用户开发了“销售报表”,老板(admin)可以查看全部地区的销售数据,但是各地区的负责人只能查看对应地区的数据;
...
我们以产品自带数据源northwind数据库下的【orders】为例:【orders】存储的是各个区域、省份、城市的销售订单信息
具体的操作步骤如下:
1)创建数据模型并在模型中增加 “SQL查询”
用户通过SQL查询控制权限:
- 如果权限比较简单,比如通过”用户所属组”可以直接匹配的,可直接用函数进行控制;上图的CurrentUserDefaultDepartmentAlias就是用户所属组与区域匹配上了,所以可以控制权限;
- 如果权限控制比较复杂,比如用户存储在另外一个业务库,需要通过SQL语句进行再处理的,可使用用户属性。
2)保存并回到模型,查看最终效果(预览模型)::如需要把该参数在报表层应用,可以参考:参数管理进行映射。
如需要把该参数在报表层应用,可以参考:参数管理进行映射。
2.3 通过SQL实现数据加工、多表关联等
有时候IT技术人员是直接通过SQL处理、加工好对应的指标,然后让业务人员直接基于处理好的指标进行报表展现,并且查询全部数据,这时候也可以使用模型里面的SQL查询。
我们以查看“产品销售额”为例来进行说明.
1)创建数据模型并在模型中增加 “SQL查询”
以产品自带northwind数据库下的【product】、【orderdetails】为例编写SQL语句如下图:2)以产品自带northwind数据库下的【product】、【orderdetails】为例编写SQL语句如下图:
- 可以在SQL语句中多表关联、过滤、使用数据库本身的函数进行计算、字符串替换、拼接、case when等等
3)【保存】之后再回到【回到模型】,可以设置与其他查询的关系或者参考构建数据模型构建自己的模型。
2.4 通过SQL进行union
某软件公司北京、广州、深圳的合同数据分别存在三张表中,业务用户非常不方便分析,希望能把他们进行合并。
...