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

Expressão - Classificação e Junção 2 Valores

Bom dia,

          Pessoal estou com uma dúvida ao elaborar uma expressão, pois preciso adicionar um cálculo somente quando o campo for igual CD_CONTADET = '93'.

1) Essa é a expressão geral que uso para todas as CD_CONTADET.

((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C',VL_BAIXA,0))-

SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D',VL_BAIXA,0)))

2) Agora o que preciso é unir abaixo a Expressão A + Expressão B, numa só quando CD_CONTADET = '93'.

Expressão A:

(SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-

SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0)))

Expressão B:

(SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))

Att,

André Tonini

Labels (1)
1 Solution

Accepted Solutions
Not applicable

Eu criei uma carga com os dados do exemplo que você postou,

logo apos criei uma chave por mes/ano, e o gráfico de tabela com as dimensões  CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA.

segue scripts:

Carga usada no exeplo

//Cargas

FINANCEIRO_TMP:

LOAD * INLINE [

    CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA, VALOR_FINANCEIRO

    2, Engenharia Elétrica, 2014, jul, 1000

    6, Telefone, 2014, jul, 2000

    93, Salário Motorista, 2014, jul, 10000

];

COMISSAO_TMP:

LOAD * INLINE [

    CD_MOTORISTA, NM_MOTORISTA, ANO_BXA_C, MES_BXA_C, VALOR_COMISSAO

    1, Pedro, 2014, jun, 600

    2, João, 2014, jul, 500

    18, Pedro, 2014, jul, 700

    27, Antonio, 2014, jul, 1300

];

//Criando uma Chave Mês_Ano

FINANCEIRO:

NoConcatenate

LOAD *,

   MES_BXA&ANO_BXA as MesAno

Resident FINANCEIRO_TMP;

DROP Table FINANCEIRO_TMP;

COMISSAO:

NoConcatenate

LOAD *,

   MES_BXA_C&ANO_BXA_C as MesAno

Resident COMISSAO_TMP;

DROP Table COMISSAO_TMP;

Expressão do gráfico:

if(CD_CONTADET = 93

  ,sum(VALOR_FINANCEIRO)+ Sum(VALOR_COMISSAO)

  ,sum(VALOR_FINANCEIRO))

View solution in original post

6 Replies
matzenbacher
Creator II
Creator II

E ai Andre, ja tentou set analysis, seria mais ou menos isso?

(sum({<   ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'C'} , CD_CONTADET = {93}  >}VL_BAIXA)

-

sum({<   ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'D'} , CD_CONTADET = {93}   >}VL_BAIXA))

+

sum( {<NO_BXA = {2014}, MES_BXA = {'jul'} , CD_CONTADET = {93}. PC_COMISSAO -= {0}  >}   VL_COMISSAO)


Not applicable

Boa tarde André Tonini

Você ja tentou usar um IF para isso?

Ex:

If(CD_CONTADET = '93'

  ,((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-

  SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0))))

  ,(SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))

  )

andre_tonini
Creator II
Creator II
Author

Kaauan e Marciel,

       Boa tarde, grato pelo retorno porém acabei mudando um pouco a minha pergunta, pois como coloquei acima eu estava fazendo a ligação entre as tabelas pelo campo CD_CONTADET, porém esse campo não existia na tabela comissão - então havia criado no excel e via load no script fazia essa "amarração"...mas ficou muito pesado a carga e virou uma gambiarra.

       Bom então reformulando a minha pergunta, vamos ver se isso é possivel:

a) Tenho uma tabela chamada financeiro, que apresenta os seguintes campos.

1.jpg

b) Tenho uma outra tabela chamada comissão, que não faz ligação direta com a tabela anterior, apenas os campos ANO_BXA e MES_BXA são semelhantes.

1.jpg

c) Bom agora é que vem o meu problema, existe uma maneira de somar o Valor Comissão (ano_bxa=2014,mes_bxa='jul') R$ 2.500,00 com o Valor Financeiro da CD_CONTADET = '93'?
Pois nesse cenário que estou criando entendemos que o CD_CONTADET = 93 deverá ser composto pelo 10.000,00 (salário motorista) + 2.500,00 (comissão).

2.jpg

Att,

André Tonini

Not applicable

André, segue um exemplo, veja se atente a sua duvida.

andre_tonini
Creator II
Creator II
Author

Olá Marciel, desculpa mas não estou conseguindo abrir o qvw, você consegue postar o script e a expressão?

Grato

André

Not applicable

Eu criei uma carga com os dados do exemplo que você postou,

logo apos criei uma chave por mes/ano, e o gráfico de tabela com as dimensões  CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA.

segue scripts:

Carga usada no exeplo

//Cargas

FINANCEIRO_TMP:

LOAD * INLINE [

    CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA, VALOR_FINANCEIRO

    2, Engenharia Elétrica, 2014, jul, 1000

    6, Telefone, 2014, jul, 2000

    93, Salário Motorista, 2014, jul, 10000

];

COMISSAO_TMP:

LOAD * INLINE [

    CD_MOTORISTA, NM_MOTORISTA, ANO_BXA_C, MES_BXA_C, VALOR_COMISSAO

    1, Pedro, 2014, jun, 600

    2, João, 2014, jul, 500

    18, Pedro, 2014, jul, 700

    27, Antonio, 2014, jul, 1300

];

//Criando uma Chave Mês_Ano

FINANCEIRO:

NoConcatenate

LOAD *,

   MES_BXA&ANO_BXA as MesAno

Resident FINANCEIRO_TMP;

DROP Table FINANCEIRO_TMP;

COMISSAO:

NoConcatenate

LOAD *,

   MES_BXA_C&ANO_BXA_C as MesAno

Resident COMISSAO_TMP;

DROP Table COMISSAO_TMP;

Expressão do gráfico:

if(CD_CONTADET = 93

  ,sum(VALOR_FINANCEIRO)+ Sum(VALOR_COMISSAO)

  ,sum(VALOR_FINANCEIRO))