1

我有一个水晶报告,它使用具有约 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 语句来说明我需要的一切,有没有办法做到这一点?

谢谢您的帮助。

4

0 回答 0