复杂SQL
使用复杂数据集,用户可以直接在输入框中写sql语句,这种方式比较适合对sql语句有深入了解的用户。
在线演示
建立复杂数据集的步骤
【新建数据集】-->【写入sql】-->【其他配置】-->【预览数据】-->【完成】。
其中【其他配置】包含宏配置、参数设置,如果是简单的不带宏与参数的sql语句则无需进行此步骤。
复杂数据集举例
一个带条件宏的复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from demo_orders where ${macro1}
2.切换到宏配置tab页,系统会自动将以${}为标识的宏名自动获取到,用户可设置宏的类型和相应配置。
3.预览数据。
一个带参数的复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from demo_orders where ${orders}and 货主地区=?area
2.切换到宏配置tab页,自动获取到orders宏,手动进行宏类型和默认值的配置。
3.切换到参数tab页,系统自动获取到参数area。
手动设置参数的数据类型“字符串”、参数类型“普通参数”和默认值为“华北”。
4.预览数据。
一个带动态表名的复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from TEST_EMPLOYEE_${nianfen}
2.切换到宏配置tab页,系统自动获取到nianfen宏,手动配置宏的类型、默认值等。
3.预览数据。
一个带动态宏参数类型为字符串组的复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from demo_orders where ${m}
2.切换到宏配置tab页,系统自动获取到m宏,手动设置宏的类型为动态宏,手动书写表达式,点击确按钮添加参数,将参数类型设置为字符串组,具体设置如图所示:
3.预览数据。
模糊查询复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from demo_orders where 货主地区 like ?are
2.切换到参数tab页,手动设置参数类型为动态参数,默认值表达式按照模糊查询的规则写即可,具体如图所示:
3.预览数据。
多条件值全部查询复杂数据集的建立
1.在"复杂sql"tab页中输入sql语句:
select * from demo_orders where 货主地区 in(?arg1) or ?org2 is null
2.切换到参数tab页,arg1设置数据类型为字符串组,arg2设置参数类型为动态参数,参数默认设置为str(arg1),具体如图所示:
3.预览数据。
详细的参数和宏的介绍请查阅【数据集中的参数】和【数据集中的宏】。
复杂SQL书写规则与注意事项
- 如果复杂sql数据集制作的报表需要使用通用查询,则必须为复杂sql数据集进行条件宏的配置。
- sql语句中的一个条件宏可以添加多个数据表。使用通用查询时只显示一个查询块,但供选择的查询字段会显示宏配置中所添加的多个数据表的字段。
- 如果制作带条件宏的复杂sql数据集并进行宏配置,必需先为用户分别数据表和字段授权,否则提取宏时数据表和字段不显示。
- sql语句中书写了多个同名的宏时,同名的宏自动识别只提取一个。
- 复杂sql数据集中同时出现order by和条件宏时,order by必须写到where以后。
- 复杂数据集sql语句中使用表别名时,在条件宏设置中表别名要和sql中的表别名一致。
- 复杂数据集sql语句未使用表别名时,在条件宏可以不设置表别名如果要设置的话只能是真实表名不能随便定义表别名。
- 如果需要使用复杂sql数据集制作分组分析、交叉分析,select的字段不能出现相同字段名。