|
|
Postada em 21/06/2006 10:20 hs
Olá, amigos. Preciso saber como fazer o seguinte: Tenho duas tabelas de vendas. Quero mover o conteúdo da tabela1 para a tabela2. Acontece que podem haver registros duplicados, já que as duas tabelas não possuem uma chave primária. Seria assim: Transportar os registros da tabela1 para a tabela2, verificando se existe o registro em duplicidade; se existir, não mover o registro; se não existir, mover o registro. Mas eu tenho que verificar todos os campos de um registro para ver se eles estão iguais e depois poder mover (ou não) para a tabela2. Como posso colocar isso no comando SQL? As duas tabelas possuem campos iguais e mesmo tamanho. São eles: Campo Descrição Tipo ======================================= CodCli - Código do cliente N DataPed - Data do pedido D NumPed - Número do pedido N Desconto - Desconto do pedido T Prazo - Cond. de Pagamento T Valor - Valor do pedido T Por favor me ajudem !!!!!
|
|
|
|
|
|
|
|
Postada em 21/06/2006 14:18 hs
Cara, me parece simples.
Se eu entendi bem o que tu queres, lá vai:
Dim sSQL as string Dim rsTabela1 as new adodb.recordset (para DAO use "as Recordset") Dim rsTabela2 as new adodb.recordset (para DAO use "as Recordset")
rsTabela1.open Do while not rsTabela1.eof sSQL = "SELECT Campos_Que_Tu_Quiseres FROM Tabela2 WHERE " ssql = ssql & "CodCli=" & rsTabela1!CodCli & " AND " (daí continua montando teu sql dentro deste loop)
rsTabela2.open sSQL if rstabela.eof then VariavelDeConexao.Execute sSQL end if rsTabela1.movenext loop
ESPERO TER TE AJUDADO
Cristiano Fischer Projeto SIGA - Sistemas Integrados de Gestão
|
|
|
|
|
|
Postada em 21/06/2006 15:01 hs
quando voce diz verificar todos os campos é se eles contem dados? Afinal se ele só esta na tabela1 vou verificar se esta igual a o que? OU existe a possibilidade de ter varios pedidos com o mesmo número na tabela1?
dsmn
|
|
|
|
|
|
Postada em 22/06/2006 07:17 hs
Daniel, todos os campos das duas tabelas contém registros. Só que pode ser que aconteça de ter registros na tabela2 que sejam iguais aos da tabela1. Por isso eu quero que quando mover um registro da tabela1 para a tabela2, verificar se ele é igual, porque eu quero que o registro não apareça duplicado na tabela2 (que é a que eu vou usar no meu projeto) Quanto ao exemplo do amigo 7Cordas, vou tentar e depois retorno se deu certo ou não. Obrigado
|
|
|
|
|
|
Postada em 22/06/2006 11:49 hs
dim tb1 as adodb.recordset dim tb2 as adodb.recordset set tb1 = new adodb.recordset set tb2 = new adodb.recordset sql1="select cod,desc from tabela1" sql2="select cod,desc from tabela2" tb1.open cnx,sql1 tb2.open cnx,sql2 while not tb1.eof tb2.moveMin while not tb2.eof if tb1("cod") <> tb2("cod") or tb1("desc") <> tb1("desc") 'etc... insere_tabela1 else tb2.movenext endif wend tb1.movenext wend
|
|
|
|