有没有办法避免在Cognos报告提示值中具有一个列值(表Business Key之一)的NULL值的顶行
如果用户未在值提示(Cognos Report Portal)中选择任何值并单击“完成”按钮,则结果将包含具有NULL值的其他列的列(其中一个具有值的业务键)。
选择整张桌子并没有什么不同。
`Select * From InsuranceTable`
当用户选择不在值提示中选择任何内容时,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
答案 0 :(得分:2)
我对你想要达到的目标感到有点困惑。但是,如果您只是想过滤掉第1列和第2列为NULL的行,即使用户没有从提示中选择一个值,那么您的过滤器可能看起来像这样(假设您选择了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?)
你有两位逻辑,一位没有选择任何东西,另一位选择了一个值。如果没有选择任何内容,那么我们只选择其他两个值都不为空的行。关键是这两个条件不重叠。要么?帕拉姆?缺失或不缺失。
您也可以使用IF完成相同的逻辑......那样:
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