Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
mercadante
Creator
Creator

Gravar foto mensal

Sr.(as)

Boa tarde!

Alguém pode me orientar a melhor forma de resolver a necessidade abaixo.

Tenho os seguintes campos:

Numero Contrato,

Data Venda Contrato,

Data Pedido Cancelamento,

Data Desistência do Cancelamento,

Data Cancelamento Contrato,

Etc.

Preciso armazenar uma foto mensal destes dados

Pensei em duas formas de resolver

1º Opção

Criar uma variavel com o Mês/Ano e utilizar a mesma para compor o nome do QVD. Desta forma quando virar o mês, um novo qvd será criado.

Só que as informações será duplicadas. Exemplo 50.000 linhas no qvd Janeiro 50.000 linhas no qvd de fevereiro e assim por diante.

2º Opção

Criar uma chave com todos os campos mais uma data de carga, desta forma é possivel criar uma validação e a linha sera gravada se houver alteração de algum campo.

Assim será duplicado somente os registros que sofreram alterações.

OBS.: A Data Venda Contrato, Data Pedido Cancelamento e Data Cancelamento compõe meu calendário.

Quando selecionar um mês do meu calendário, quero saber quantos contratos foram vendidos, quantos foram cancelados, quantos desistiram do cancelamento e assim por diante.

Alguém pode me mostrar qual caminho seguir?

Obrigado!

Mercadante

14 Replies
rphpacheco
Creator III
Creator III

Bom dia Antonio Mercadante.

Bom, explicando o exemplo que montei.

O primeiro load que faço é Responsável por gerar a foto mensal. Existe a variável Mês_Base que irá gerar Qvds conforme o mês que seja feita a carga.

Após isto, com um diretório contendo todos os meses carregados, eu leio estas informações novamente (Aba Agrupamento) e agrupo todas as informações apenas pelo número do contrato.

As demais datas eu pego apenas a mais atual, ou seja, mesmo que mude, ele irá verificar esta alteração e irá mudar a data.

Obs: estou contando com o fato de não existir data retroativa, ex: se hoje foi add a data "09/02/2015" e amanhã ela mudou para "01/02/2015", ele irá pegar a maior data.

Bom, espero ter ajudado!

Abraço!

mercadante
Creator
Creator
Author

Entendi,

Mas não resolveria meu caso. Estou partindo para a foto diária.

Criei uma chave com os campos que podem sofrer alterações, e comparo diariamente. se houve alteração na data ele grava, se não descarta. Acredito que desta forma meu QVD não vai duplicar a cada mês, pois hoje já carrego 55.000 linhas.

Ainda não esta muito claro como vou trabalhar com o calendário. Pois na mesma tabela fato tenho quatro campos de data que compõem meu calendário. 

rphpacheco
Creator III
Creator III

Bom Antonio, pensei que tinha visto no título do post que era uma foto mensal. Mas agora percebi que a sua necessidade é obter a foto diária.

Bom, mesmo sendo assim, creio que todas as mudanças ocorridas seguem uma ordem cronológica. Sendo assim, você pode utilizar esta lógica para pegar os dados únicos e atualizados.

Caso não tenha entendido bem a sua necessidade, por favor nos passe mais informações sobre ela

mercadante
Creator
Creator
Author

Srs. Boa tarde!

Consegui resolver em partes meu problema.

Criei uma primeira carga concatenando todos os campos da minha tabela.

Agora eu faço um

[base]

Load

     chave

     .   

     .

residente

     [arquivo];

concatenate (base)

load

chave

*

*

where

not exists ('chave', <campos>);

select

......

Desta forma ele incrementa somente se houve alteração na linha.

Porem me deparei com outro problema e não estou vendo saída.

Um dos campos que compoem a chave é o DIA_VENCIMENTO

peguei um cliente que o dia vencimento era 5 alterei para 10 e minha carga gravou as duas linhas.

Quando eu volto ele para o dia 5 ele não grava mais, pois já tenho esta linha na minha tabela.

Alguém tem ideia de como posso resolver isso?

mercadante
Creator
Creator
Author

Sr.(as)  Bom dia!

Consegui resolver criando duas cargas. Uma traz somente os contratos novos e a segunda os que tiveram alteração de horario