Prezados amigos,
Estou apanhando aqui. Eu fiz uma consulta que devo rodar todo primeiro dia útil do mês para gerar débitos a serem cobrados dos clientes.
Para isso eu busco dados na tabela clientes e na tabela contratos e faço um insert na tabela pgto_clientes
A questão é, eu não quero duplicação de dados... Por exemplo, se por engano alguém já tiver rodado a consulta, se alguém já tiver inserido algum débito manualmente por alguma negociação, etc.. eu queria que o insert só incluísse dados diferentes daqueles já presentes... obvio o campo de id_debito não deve ser levado em conta pois é incremental, mas se o restante da linha for idêntico... deveria ser ignorada a inserção.
segue meu código
Tentei inserir uma condição de mais ou menos assim, mas dá erro, pois volta mais de um resultado por linha:
Também tentei usar o distinctrow, mas sem sucesso.
Aguardo a LUZ! hehehe abraços!
Estou apanhando aqui. Eu fiz uma consulta que devo rodar todo primeiro dia útil do mês para gerar débitos a serem cobrados dos clientes.
Para isso eu busco dados na tabela clientes e na tabela contratos e faço um insert na tabela pgto_clientes
A questão é, eu não quero duplicação de dados... Por exemplo, se por engano alguém já tiver rodado a consulta, se alguém já tiver inserido algum débito manualmente por alguma negociação, etc.. eu queria que o insert só incluísse dados diferentes daqueles já presentes... obvio o campo de id_debito não deve ser levado em conta pois é incremental, mas se o restante da linha for idêntico... deveria ser ignorada a inserção.
segue meu código
- Código:
INSERT INTO pgtoMensalistas ( cod_cliente, valor_pagto, mes_referencia, ano_referencia )
SELECT clientes.cod_cliente, contratos.valor_mensal AS valor_pagto, Month(Date()) AS mes_referencia, Year(Date()) AS ano_referencia
FROM (contratos INNER JOIN clientes ON contratos.cod_contrato = clientes.cod_contrato) INNER JOIN pgtoMensalistas ON clientes.cod_cliente = pgtoMensalistas.cod_cliente
WHERE (((clientes.cod_cliente)>1) AND ((clientes.ativo)=True));
Tentei inserir uma condição de mais ou menos assim, mas dá erro, pois volta mais de um resultado por linha:
- Código:
AND clientes.cod_cliente + valor_pagto + mes_referencia + ano_referencia <> (SELECT cod_cliente + valor_pagto + mes_referencia + ano_referencia from pgtoMensalistas)
Também tentei usar o distinctrow, mas sem sucesso.
Aguardo a LUZ! hehehe abraços!