我有一个水晶报告,它使用具有约 8 个可选标准级别的动态参数:
Company,
Country,
Zone,
Division,
State,
Region,
Area,
City,
Center
我想要一个级联的每个项目的列表,但也有 ALL 作为每个项目的选项。我还希望能够将一些顶层设置为 ALL,然后可以选择中间的那些,然后再次转到 ALL。例如,我不想选择公司、国家、地区或部门,而是选择州和地区,然后将地区、城市和中心全部返回。
我的表有大约 2000 条记录,我最初的解决方案是在我执行以下操作的地方构建它:
SELECT DISTINCT
Company,
Country,
Zone,
Division,
State,
Region,
Area,
City,
Center
FROM myTable
UNION ALL
SELECT
Company = 'All',
Country = 'All',
Zone = 'All',
Division = 'All',
State = 'All',
Region = 'All',
Area = 'All',
City = 'All',
Center = 'All'
UNION ALL
SELECT DISTINCT
Company = 'All',
Country,
Zone = 'All',
Division = 'All',
State = 'All',
Region = 'All',
Area = 'All',
City = 'All',
Center = 'All'
FROM myTable
使用我能想到的几乎所有组合。这不仅看起来令人费解,而且会导致返回大量数据,并且似乎会遗漏一些东西。
我主要关心的是除了没有被更高级别的选择过滤的选项之外,所有选项都可以选择。
如果没有 40-50 UNION ALL 语句来说明我需要的一切,有没有办法做到这一点?
谢谢您的帮助。