Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
jmcandido
Contributor III
Contributor III

Soma condicional

Tabela.PNG

Eu tenho a tabela acima, eu preciso criar uma medida que seja a soma de uma data, tentei usar a função

sum( {$<DTABASE = Now >} RESULMETA)

mas não deu certo, embora não retorne nenhum erro não retorna resultado algum ou então retorna a soma de tudo.

Na verdade onde coloquei Now eu preciso pegar o ultimo dia do mês anterior, ou seja, preciso somar todos os valores do ultimo dia do mês anterior.

Para pegar o ultimo dia do mês anterior estou utilizando a função

maxstring(date(DTABASE, 'DD/MM/YYYY'))

mas quando coloco essa função na primeira fórmula o qlik retorna mensagem de erro.

Como posso resolver essa questão e fazer essa soma?

Desde já obrigado.

Labels (1)
1 Solution

Accepted Solutions
Marcio_Campestrini
Specialist
Specialist

João

Pelo que vi o seu problema está na data: na carga dos dados está trazendo no formato 'DD/MM/YYYY HH:MI', e a expressão que passei para a fórmula considera somente a parte inicial (dia/mês/ano).

Tente uma das duas soluções:

LOAD SEQVENDEDOR,

    NOMERAZAO,

    DTABASE,

    SEQMETA,

    META,

    RESULTETO,

    RESULMETA;

SQL SELECT SEQVENDEDOR,

    NOMERAZAO,

    Trunc(DTABASE) As DTABASE,

    SEQMETA,

    META,

    RESULTETO,

    RESULMETA

FROM DATAVALE."DQSV_RANKINGMETA";

ou

LOAD SEQVENDEDOR,

    NOMERAZAO,

    Floor(DTABASE) As DTABASE,

    SEQMETA,

    META,

    RESULTETO,

    RESULMETA;

SQL SELECT SEQVENDEDOR,

    NOMERAZAO,

    DTABASE,

    SEQMETA,

    META,

    RESULTETO,

    RESULMETA

FROM DATAVALE."DQSV_RANKINGMETA";

Márcio Rodrigo Campestrini

View solution in original post

13 Replies
Marcio_Campestrini
Specialist
Specialist

Bom dia João

Se você quer o último dia do mês anterior utilize a expressão abaixo:

=Date(MonthEnd(AddMonths(today(), -1)))

Márcio

Márcio Rodrigo Campestrini
jmcandido
Contributor III
Contributor III
Author

Bom Dia Márcio, o problema em si não é pegar o ultimo dia do mês anterior, pegar o ultimo dia do mês anterior é apenas parte do problema.

Se olharmos na tabela exemplo que esta na imagem da abertura podemos ver que eu tenho três campos, um deles é uma data, essa data será sempre o ultimo dia de cada mês e um campo com um valor, o que eu preciso é somar os valores do ultimo mês, pensei em fazer como na imagem abaixo, mas da erro.

se eu tirar a função de ultimo dia do mês não da erro, mas também não funciona.

Erro.PNG

Not applicable

Ola João,

Tente isso:

sum( {$<DTABASE = {'=Date(MonthEnd(AddMonths(today(), -1)))'} >} RESULMETA)

jmcandido
Contributor III
Contributor III
Author

Bom Dia Marcos, agora não da erro, mas o resultado retornado esta errado, fazendo a consulta direto no banco de dados temos o resultado conforme imagem abaixo, então o resultado que deveria retornar nesse caso seria 810,07, mas esta retornando o total de 2.396,48qlik.PNG

select.PNG

paulovendruscol
Creator
Creator

João,

Veja se atende:

=sum( {$<DTABASE = {"$(=Date(MonthEnd(AddMonths(Today(),-1)), 'DD/MM/YYYY'))"} >} RESULMETA)

jmcandido
Contributor III
Contributor III
Author

Boa Tarde Paulo Vendruscolo, desse jeito retorna zero

Not applicable

Desculpa, tinha um erro de sintaxe:

sum( {$<DTABASE = {'$(=Date(MonthEnd(AddMonths(today(), -1))))'} >} RESULMETA)

Not applicable

Testou a nova sintaxe que eu passei?


sum( {$<DTABASE = {'$(=Date(MonthEnd(AddMonths(today(), -1))))'} >} RESULMETA)

jmcandido
Contributor III
Contributor III
Author

Boa Tarde Marcos Freire, sim testei, estou enviando um arquivo de teste em anexo, está retornando 0 (zero).