Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
adeilson1402
Contributor II
Contributor II

if(IsNull(FirstSortedValue

Bom Dia, 

Estou transportando algumas ferramentas do qlik view para o qlik sense e não consegui realizar uma função if (IsNull (FirstSortedValue

No qlik view ele calculava corretamente como expressão, porem no qlik sense não consigo colocar como medida ou dimensão. Não sei qual pode ser o erro, ou se o qlik sense impõe essa função.

if (IsNull (

                FirstSortedValue (

                if (SITUACAO = 'A', 'Aberto',

                if (SITUACAO = 'C', 'Cancelado',

                if (SITUACAO = 'E', 'Estornado',

                if (SITUACAO = 'P', 'Pago')))), - DATA_PAGAMENTO)),

                               FirstSortedValue (

                               if (SITUACAO = 'A', 'Aberto',

                               if (SITUACAO = 'C', 'Cancelado',

                               if (SITUACAO = 'E', 'Estornado',

                               if (SITUACAO = 'P', 'Pago')))), - DATA_OPERACAO),

FirstSortedValue (

if (SITUACAO = 'A', 'Aberto',

if (SITUACAO = 'C', 'Cancelado',

if (SITUACAO = 'E', 'Estornado',

if (SITUACAO = 'P', 'Pago')))), - DATA_PAGAMENTO))

2 Replies
Kushal_Chawda

looks like you need alt function here

alt(

                FirstSortedValue (

                if (SITUATION = 'A', 'Open',

                if (SITUATION = 'C', 'Canceled',

                if (SITUATION = 'E', 'Refunded',

                if (SITUATION = 'P', 'Paid')))), - PAYMENT DATE),

                               FirstSortedValue (

                               if (SITUATION = 'A', 'Open',

                               if (SITUATION = 'C', 'Canceled',

                               if (SITUATION = 'E', 'Refunded',

                               if (SITUATION = 'P', 'Paid')))), - DATE_OPERATION),

FirstSortedValue (

if (SITUATION = 'A', 'Open',

if (SITUATION = 'C', 'Canceled',

if (SITUATION = 'E', 'Refunded',

if (SITUATION = 'P', 'Paid')))), - PAYMENT DATE))

TiagoCardoso
Creator II
Creator II

Primeiramente, tenta colocar o DISTINCT no seu FirstSortedValue, pois caso seu resultado tenha mais de um retorno, ele transforma em nulo.

Segundo, existem apenas essas 4 situações? A,C,E e P? Se existir mais, é interessante incluir apenas esses índices no SetAnalysis da função FirstSortedValue().

Terceiro, acho bem interessante você criar na carga um MappingLoad para eliminar estes IFs aí dentro.

Pode ser que isso funcione:

 

if (
    IsNull (
        FirstSortedValue ( DISTINCT
            if (SITUACAO = 'A', 'Aberto',
            if (SITUACAO = 'C', 'Cancelado',
            if (SITUACAO = 'E', 'Estornado',
            if (SITUACAO = 'P', 'Pago')))), - DATA_PAGAMENTO
        )
    ),

    FirstSortedValue ( DISTINCT
        if (SITUACAO = 'A', 'Aberto',
        if (SITUACAO = 'C', 'Cancelado',
        if (SITUACAO = 'E', 'Estornado',
        if (SITUACAO = 'P', 'Pago')))), - DATA_OPERACAO
    ),

    FirstSortedValue ( DISTINCT
        if (SITUACAO = 'A', 'Aberto',
        if (SITUACAO = 'C', 'Cancelado',
        if (SITUACAO = 'E', 'Estornado',
        if (SITUACAO = 'P', 'Pago')))), - DATA_PAGAMENTO
    )
)