Есть ли способ избежать верхних строк со значениями NULL, которые имеют одно значение столбца (один из бизнес-ключей таблицы) в значениях подсказки отчета Cognos

Есть ли способ избежать верхних строк со значениями NULL, которые имеют одно значение столбца (один из бизнес-ключей таблицы) в значениях подсказки отчета Cognos

Когда пользователь не выбирает какое-либо значение в приглашении к значению (портал отчетов Cognos) и нажимает кнопку FINISH, результаты включают столбец (один из бизнес-ключей со значением), в котором есть другие столбцы со значениями 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

person BongReyes    schedule 26.05.2015    source источник


Ответы (1)


Я немного не понимаю, чего вы хотите достичь. Однако, если вы просто хотите отфильтровать строки с NULL для столбца 1 и столбца 2, даже если пользователь не выбирает значение из приглашения, ваш фильтр может выглядеть примерно так (при условии, что вы выбираете 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?)

У вас есть два бита логики: один, где ничего не выбрано, а другой, где выбирается значение. Если ничего не выбрано, мы выбираем только строки, в которых оба других значения не равны нулю. Ключ в том, что эти два условия не пересекаются. Либо? Param? отсутствует или не отсутствует.

Вы также можете выполнить ту же логику, используя 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
person Johnsonium    schedule 26.05.2015
comment
Ты обалденный! Спасибо! Параметр? у меня работает в знании. (? param? ОТСУТСТВУЕТ И [Businss_Sub_Division] НЕ НУЛЬ и [Claim_Handling_Unit] НЕ НУЛЬ) ИЛИ (? param? НЕ ОТСУТСТВУЕТ И [Claim_Handling_Unit] =? param?) - person BongReyes; 27.05.2015