Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
mercadante
Creator
Creator

Gerar QVD com foto diária

Sr.(as) Boa tarde!

Alguém pode me ajudar com a seguinte necessidade.

Tenho uma consulta que retorna faturamento e arrecadação, preciso armazenar uma foto diária  desta carga em um QVD.

Porem só quero gravar as linhas que tiveram alteração, pois duplicar o arquivo não é viável

Pensei algo do tipo, diariamente faço a carga e comparo os registros da consulta com os registros já gravados no QVD. Se teve alguma alteração em algum campo eu gravo o registro com a data da alteração. Caso contrário descarto o registro e mantenho o que está no QVD. Não vou substituir o registro do qvd, se tiver alteração adiciono a linha se não mantenho.

Alguém pode me mostrar o caminho das pedras por gentileza?

Obrigado!

1 Solution

Accepted Solutions
mercadante
Creator
Creator
Author

Srs. Aparentemente consegui resolver com esse código.

Muito obrigado pela ajuda de vocês, foi fundamental para o meu entendimento.

[QVD]:

load

  CHAVE,

  [Data/Hora Carga]

From

  [$(vPathQvd)\ARRECADACAO.QVD]

  (qvd);

Concatenate([QVD])

LOAD

  now(0) AS [Data/Hora Carga],

  campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

  &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

  &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

  &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

  &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

  &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo as CHAVE

where

  not Exists('CHAVE',campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

    &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

    &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

    &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

    &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo

    &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo &'|'& campo)

;

sql

SELECT

  campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo

  ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo

  ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo

  ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo

  ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo

  ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo ||'|'|| campo AS CHAVE,

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

  campo

from

  arrecadacao_analitico;

View solution in original post

18 Replies
nicolett_yuri

Antonio, você deseja comparar quais campos para saber se houve alteração?

mercadante
Creator
Creator
Author

Yuri, eu estou olhando todos os campos. São um total de 50.

nicolett_yuri

Antonio, verifique se não existe nenhuma coluna que mostra a data da inclusão da linha ou data de alteração da mesma, caso contrário essa checagem pode ficar muito pesada e inviável.

mercadante
Creator
Creator
Author

Não tem estes campos.

O que acontece é que ele popula os campos. Um exemplo é quando o cliente efetua o pagamento de uma fatura, ele simplesmente popula a data de pagamento e o valor arrecadado. Mas no mesmo registro, não cria um registro novo no banco.

Por esse motivo estou olhando todos os campos, se algum alterou eu adiciono a linha, se não mantenho. e ao adicionar gostaria de gravar a data desta adição.

nicolett_yuri

Antonio, acho que até da para fazer, mas vai ficar um serviço MUITO porco (Desculpe a palavra ), não sei se vale a pena. Existe a possibilidade da sua TI realizar essa alteração no sistema da sua empresa? pois isso acaba sendo algo simples de se fazer.

Imagine que todo dia você vai ter que executar a sua query e faze-la varrer toda a sua base de dados em busca de alteração em uma ou mais de 50 colunas.

nicolett_yuri

Vou montar um exemplo de como fazer isso e te envio.

mercadante
Creator
Creator
Author

Eu estou em contato com a TI, mas é quase impossível conseguir que alterem a view, pois é empresa terceira e envolve custos.

nicolett_yuri

Antonio, estamos falando de quantas linhas da tabela? (Qual a volumetria de registros dessa tabela?)

mercadante
Creator
Creator
Author

Para ser exato são 194260 linhas