AJUDA NA SQL...
Olá !
tenho uma aplicação para supermercados, e o banco de dados já está grande, contendo + de 70 megas...
também, devido ao grande número de registros dos cupons e itens de cupons, a aplicação começa a ficar um pouco lenta...
portanto, gostaria de excluir todos os cupons que forem [Ô]venda a vista[Ô], e também os itens destes cupons, que estão em duas tabelas diferentes.
tabela Cupom:
codigo, codcaixa, codvendedor, data, dinheiro, cheque, ticket, fiado, etc...
tabela CupomItem:
codcupom, coditem, codbarras, quantidade, valorunit, etc...
e tem mais um problema... gostaria de excluir apenas os cupons que não constarem na tabela ContasReceber, para uma eventual consulta posteriormente...
tabela ContasReceber:
Codigo, data, descricao, valor, codcupom, pago, etc...
bom, então tinha que fazer + ou - assim...
excluir todos os Cupons que não tivesse na tabela ContasReceber, e excluir todos os CuponsItems que não existir na tabela de cupons...
como ficaria isso ??
tenho uma aplicação para supermercados, e o banco de dados já está grande, contendo + de 70 megas...
também, devido ao grande número de registros dos cupons e itens de cupons, a aplicação começa a ficar um pouco lenta...
portanto, gostaria de excluir todos os cupons que forem [Ô]venda a vista[Ô], e também os itens destes cupons, que estão em duas tabelas diferentes.
tabela Cupom:
codigo, codcaixa, codvendedor, data, dinheiro, cheque, ticket, fiado, etc...
tabela CupomItem:
codcupom, coditem, codbarras, quantidade, valorunit, etc...
e tem mais um problema... gostaria de excluir apenas os cupons que não constarem na tabela ContasReceber, para uma eventual consulta posteriormente...
tabela ContasReceber:
Codigo, data, descricao, valor, codcupom, pago, etc...
bom, então tinha que fazer + ou - assim...
excluir todos os Cupons que não tivesse na tabela ContasReceber, e excluir todos os CuponsItems que não existir na tabela de cupons...
como ficaria isso ??
Tente algo mais ou menos assim:
DELETE FROM cupom
WHERE NOT EXITS
(SELECT * FROM contasreceber WHERE id=999)
primeiro em qual campo de ambas as tabelas, se identifica Qual é [Ô]Venda a Vista[Ô]
eu indicaria desta forma
e
isto supondo que nas tabelas que exista um campo chamado [Ô]TipoPgto[Ô] que indica o tipo de pagamento
ou mais ou menos isto faça um backup da banco de dados entes de efetuar os testes
eu indicaria desta forma
DELETE FROM cupom WHERE TipoPgto = [Ô]Venda a Vista[Ô] And Not Exist (SELECT * FROM contasreceber WHERE contasreceber.codcupom = cupom.codigo)
e
DELETE FROM cupomitem WHERE TipoPgto = [Ô]Venda a Vista[Ô] And Not Exist (SELECT * FROM contasreceber WHERE contasreceber.codcupom = cupomitem.codcupom)
isto supondo que nas tabelas que exista um campo chamado [Ô]TipoPgto[Ô] que indica o tipo de pagamento
ou mais ou menos isto faça um backup da banco de dados entes de efetuar os testes
Tópico encerrado , respostas não são mais permitidas