[{"id":"bcb0874d-299b-448e-9552-9e9b25ef80dd","tags":[{"product":null,"links":null,"id":"ba7e818e-4f6b-4211-b1ac-58e3bafcf439","name":"\u66F4\u65B0","color":"orange","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"ae60ae59-34f5-4f32-a8eb-243ed1457543","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3d4848c3-910f-4ffa-9153-60bb507334a9","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"133f4ca6-d951-4d65-a618-3dc6301266f7","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2426c71d-8332-4cbd-a436-1ec4f8666464","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2ce7b6b0-78aa-4e4b-bf8a-e4ba2f988298","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"4706db46-0811-4652-8f59-1e0a1da84758","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8f1271bb-2cd9-4f39-9897-c15b239ee7ab","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"677e13a7-6f3e-449f-986c-2c3a26f8d54f","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"5e40f6dc-caec-49d7-a1d0-be65f06815ba","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2457f0e0-9e71-4860-a87d-065e0fb84f84","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5c67fd0-1145-482c-9113-97b492c44c18","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"a609a8fa-ab91-4c1d-a1c3-d209d0463303","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"b4a9eb15-94e5-48df-b218-a24138f0cf9c","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

动态SQL查询

功能概述

我们在创建内嵌数据集时会使用 SQL 查询语句从数据库中进行取数,普通的 SQL 查询语句是相对静态和固定的,而动态 SQL 语句本身不固定,它会根据实际场景的不同进行动态变化。

如下图所示,当用户选择不同的统计范围时,SQL 查询语句发生了变化,从而在数据库中获取到了不同的数据。

动态SQL查询3.gif

接下来我们看一下具体怎样应用动态 SQL 查询语句来实现图中的效果。

操作示例

type=info

提示

本节内容涉及到报表内嵌数据集的数据过滤功能,相关介绍请参见数据集过滤

1. 新建报表,添加报表参数

如下图所示设置 参数名称提示文本、数据类型可用数据 。设置完成后,单击上方的返回箭头返回到报表设计器当中。

image2020-6-4_11-8-21.png

2. 添加内嵌数据集

添加内嵌数据集。

image2020-6-4_11-8-58.png

3. 使用静态SQL语句获取字段列表

本例中使用SQL语句: select 销售大区 as 地区名称, count(订单编号) as 订单量, sum(订单金额) as 销售额 from 销售明细 group by 销售大区 ,单击验证按钮,可见获取到3个查询字段。

image2019-12-19_15-1-31.png

type=info

提示


此处没有直接使用动态SQL查询语句是因为动态SQL语句不能直接获取到数据库中的字段列表,我们需要先通过静态SQL将需要的字段获取到,然后再改为动态SQL语句。

4. 将静态SQL语句修改为动态SQL语句

本例中使用:

select {Switch(@统计范围 = "大区", "销售大区", @统计范围 = "省份", "销售省份", @统计范围 = "城市", "销售城市")} as 地区名称, count(订单编号) as 订单量, sum(订单金额) as 销售额 from 销售明细 group by {Switch(@统计范围 = "大区", "销售大区", @统计范围 = "省份", "销售省份", @统计范围 = "城市", "销售城市")}

输入动态SQL语句后,单击验证确定按钮。

image2020-10-27_14-28-36.png

5. 添加文本框组件显示 SQL 语句

在报表中添加一个文本框组件,将动态 SQL 语句粘贴到文本框中,这样做是为了方便我们查看实际进行数据查询的 SQL 语句。

image2020-10-27_14-29-54.png

6. 制作报表标题

添加两个文本框组件,分别输入“ 全国各 ”和“ 销售统计 ”字样并调整字体样式。

然后将报表参数拖拽至两个文本框之间,并调整字体样式,使其动态显示报表参数的值。

具体如下图所示。

image2020-10-27_15-1-42.png

7. 添加图表组件

image2020-10-27_15-21-8.png

选中标题区域,将图表的标题内容删除。

image2020-10-27_15-8-6.png

为绘图区域添加降序排序。

image2020-10-27_15-22-44.png

8. 添加表格组件

绑定数据集中的数据字段并适当调整表格宽度。

image2020-10-27_15-25-12.png


选中“ 销售额 ”明细单元格,调整数据格式为货币格式,如下图所示。

image2020-10-27_15-26-4.png(9) 预览报表

当我们选择统计范围为“ 大区 ”时,SQL查询语句即为:select 销售大区 as 地区名称, count(订单编号) as 订单量, sum(订单金额) as 销售额 from 销售明细 group by 销售大区

因此“ 地区名称 ”实际为“ 销售大区 ”,并且数据按照“ 销售大区 ”进行分组统计。

image2020-10-27_15-29-30.png


当我们选择统计范围为“ 省份 ”时,SQL查询语句即为:select 销售省份 as 地区名称, count(订单编号) as 订单量, sum(订单金额) as 销售额 from 销售明细 group by 销售省份

此时“ 地区名称 ”实际为“ 销售省份 ”,并且数据按照“ 销售省份 ”进行分组统计。

image2020-10-27_15-30-42.png