如何在Databricks数据源的SSRS报表中获取多选参数的唯一值
SSRS报表供应商参数去重方法
方法一:直接修改查询(最省心高效)
不用在报表端折腾,直接调整SQL语句,既能按选中的仓库过滤供应商,又能避免重复:
SELECT DISTINCT SupplierCode, SupplierName FROM SupplierIntegrated_data WHERE CreatedDate >= ? AND CreatedDate <= ? AND WarehouseCode IN (@Warehouse) -- 关联Warehouse参数,只保留选中仓库对应的供应商 ORDER BY SupplierCode ASC
或者用GROUP BY替代DISTINCT,效果一致:
SELECT SupplierCode, SupplierName FROM SupplierIntegrated_data WHERE CreatedDate >= ? AND CreatedDate <= ? AND WarehouseCode IN (@Warehouse) GROUP BY SupplierCode, SupplierName ORDER BY SupplierCode ASC
这样返回的就是唯一的供应商条目,参数里自然不会有重复。
方法二:报表端数据集层面去重
如果不想改查询,就在报表的供应商参数数据集里做处理:
- 打开该数据集的属性窗口,切换到「筛选」选项卡
- 添加筛选规则:
- 字段选
SupplierCode,运算符选「Top N」,值填1 - 点击「高级」,在「作用于」下拉框选「每个组」,分组依据选
SupplierCode
- 字段选
- 保存后,数据集会自动按供应商编码去重,只保留每个供应商的第一条记录
方法三:用计算字段辅助去重
如果必须保留WarehouseCode在数据集中,可添加计算字段:
- 在数据集的「字段」选项卡,点击「添加」→「计算字段」
- 字段名设为
UniqueWarehouse,表达式填=First(Fields!WarehouseCode.Value, "SupplierCode") - 供应商参数的可用值只绑定
SupplierCode和SupplierName,忽略WarehouseCode相关字段即可
内容的提问来源于stack exchange,提问作者Mad
相关产品推荐
相关产品推荐

