Qlik Community

Qlik Brasil

Announcements
Coming your way, the Qlik Data Revolution Virtual Summit. October 27-29. REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
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
Highlighted
MVP
MVP

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))

Highlighted
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
    )
)