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

Faturamento dos últimos 12 meses

Pessoal, boa tarde!

Estou querendo pegar o último mês de faturamento cadastrado na base que seja ANTERIOR a uma data de contratação. No script coloquei o comando abaixo, mas não sei “quem” executa esta query, se o QLIK ou se pelo ODBC do Oracle roda em outro lugar, pois coloquei comandos PLSQL.

left join (PRO_PROCESSOS)

SELECT A.ID_PESSOA,

       P.ID_PROCESSO,

       MAX( TO_NUMBER(TO_CHAR(A.DT_FATURAMENTO, 'YYYYMM')) ) AS MAX_ID_ANO_MES_FATURAMENTO

FROM   ANP.ANP_FATURAMENTOS A,

       PRO.PRO_PROCESSOS    P

WHERE  A.ID_PESSOA = P.ID_PESSOA_EMPRESA   AND

TO_NUMBER(TO_CHAR(A.DT_FATURAMENTO, 'YYYYMM')) < TO_NUMBER(TO_CHAR(NVL(P.DT_CONTRATO, P.DT_ENTRADA) , 'YYYYMM'))

GROUP BY A.ID_PESSOA, P.ID_PROCESSO;


                Os campos ID_PESSOA e ID_PROCESSO existem na tabela que está sendo montada.

Porém este comando trouxe para apenas algumas operações o campo “MAX_ID_ANO_MES_FATURAMENTO”, sendo que deveria ter trazido para quase todas as operações. Como te falei, uma empresa pode ter mais de uma operação..

EX: Operação 1 – 200910 (contratação)

  • Queria trazer os último 12 faturamentos anteriores, que pode ser o 200909, como pode ser o 200907, enfim, vai depender do cadastro.

       Operação2 – 201305 (contratação)

  • Queria trazer os último 12 faturamentos anteriores, que pode ser o 201304, como pode ser o 201212, enfim, vai depender do cadastro.

       Etc....

     Aí na aplicação tentei buscar diretamente sem este campo MAX_ID_AO_MES_FATURAMENTO, para depois tentar montar o esquema dos últimos 12 faturamentos, mas na hora de buscar o MAX já não consigo, pois com “variável” funciona, mas comparando campo com campo da tabela está estranho:

max( {< ANO_MES_FATURAMENTO = {'<$(=(ANO_MES_CONTRATO))'}  >}  ANO_MES_FATURAMENTO )

Max_Faturamento.png

     Aí tentei buscar direto a ROB pelo comando abaixo, mas não “respeita” as dimensões ID_PESSOA e ID_PROCESSO, trouxe o mesmo faturamento para qualquer data de contratação, desta forma também estaria errado, pois o último mês cadastrado não é obrigatoriamente o mês posterior a contratação (ANO_MES_ONTRATO):

Sum({$<ANO_MES_FATURAMENTO={">=$(=addmonths(monthstart(max(ANO_MES_CONTRATO)),-11)) <=$(=(monthend(max(ANO_MES_CONTRATO))))"} >} VL_FATURAMENTO)

ROB_Faturamento.png

Existe uma tabela dimensão separada chamada DIM_FATURAMENTOS, com os campos ID_PESSOA (chave), ANO_MES_FATURAMENTO e VL_FATURAMENTO.

// Faturamentos da empresa

DIM_FATURAMENTO:

LOAD ID_PESSOA,

Num#(Date( DT_FATURAMENTO, 'YYYYMM'))   AS ANO_MES_FATURAMENTO,

VL_FATURAMENTO

FROM [lib://QVD/ANP_FATURAMENTOS.QVD](qvd)

WHERE Exists(ID_PESSOA);

    

  Como fazer isto pessoal?


Desde já agradeço!

Labels (4)
10 Replies
Clever_Anjos
Employee
Employee

Dei uma olhada no seu arquivo, a modelagem está muito complexa, amanhã durante o dia tentarei dar uma olhada