Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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!
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;
Antonio, você deseja comparar quais campos para saber se houve alteração?
Yuri, eu estou olhando todos os campos. São um total de 50.
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.
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.
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.
Vou montar um exemplo de como fazer isso e te envio.
Eu estou em contato com a TI, mas é quase impossível conseguir que alterem a view, pois é empresa terceira e envolve custos.
Antonio, estamos falando de quantas linhas da tabela? (Qual a volumetria de registros dessa tabela?)
Para ser exato são 194260 linhas