Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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)
Operação2 – 201305 (contratação)
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 )
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)
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!
Dei uma olhada no seu arquivo, a modelagem está muito complexa, amanhã durante o dia tentarei dar uma olhada