有什么方法可以避免在 Cognos 报告提示值中出现具有一个列值(table 业务键之一)的 NULL 值的顶部行

Is there any way to avoid the top rows with NULL values that has one column value (One of the table Business Key) in Cognos report prompt values

是否有任何方法可以避免在 Cognos 报告提示值中出现具有一个列值(table 业务键之一)的 NULL 值的顶部行

当用户在值提示 (Cognos Report Portal) 中没有 select 任何值并单击 FINISH 按钮时,结果包括具有其他列的列(具有值的业务键之一)空值。

它与 select 整个 table 没有什么不同。

`Select * From InsuranceTable`

当用户选择不select值提示

中的任何内容时,Cognos 是否有办法避免前 10 行
     Business_Sub_Division  Business_Division_Name  Claim_Handling_Unit
   1 NULL                   Construction            NULL
   2 NULL                   Binding Operations      NULL
   3 NULL                   E&S Casualty            NULL
   4 NULL                   Executive Assurance     NULL
   5 NULL                   Facultative Reinsurance NULL
   6 NULL                   Healthcare              NULL
   7 NULL                   Professional Liability  NULL
   8 NULL                   Open Brokerage          NULL
   9 NULL                   Property                NULL
  10 NULL                   Special Risks           NULL
  11 Asset Protection       Executive Assurance     Canada - Claims
  12 Captive Agents         Property                Executive Assurance
  13 Excess Casualty        Healthcare              Europe - Claims
  14 Financial Institutions E&S Casualty            Executive Assurance

我对你想要达到的目标有点困惑。但是,如果您只是想过滤掉第 1 列和第 2 列为 NULL 的行,即使用户没有从提示中选择值,那么您的过滤器可能看起来像这样(假设您是 selecting Claim_Handling_Unit 在值提示中):

(?param? IS MISSING AND [Businss_Sub_Division] IS NOT NULL AND [Claim_Handling_Unit] IS NOT NULL)
OR
(?param? IS NOT MISSING AND [Claim_Handling_Unit] = ?param?)

你有两个逻辑位,一个没有 selected,另一个有一个值 selected。如果没有选择任何内容,那么我们只有 select 行,其中其他两个值都不为空。关键是这两个条件不重叠。要么?参数?丢失或不丢失。

您也可以像这样使用 IF...THEN 来完成相同的逻辑:

IF (?param? IS MISSING) 
THEN ([Businss_Sub_Division] IS NOT NULL AND [Claim_Handling_Unit] IS NOT NULL) 
ELSE ([Claim_Handling_Unit] = ?param?)

..或使用 CASE 语句

CASE 
WHEN (?param? IS MISSING) THEN ([Businss_Sub_Division] IS NOT NULL AND [Claim_Handling_Unit] IS NOT NULL) 
ELSE ([Claim_Handling_Unit] = ?param?) 
END