Descrição:
Como posso transferir dados entre duas tabelas diferentes de uma Consulta no Elipse E3?
Solução:
O objeto Consulta (ou Query) auxilia no processo de definição de consultas no Banco de Dados da aplicação. Este objeto apresenta uma interface amigável, com o propósito de permitir a construção de consultas SQL usando uma interface gráfica e o acompanhamento imediato do código SQL gerado. Além disso, a Consulta permite mostrar os dados dos últimos n dias, horas ou meses, data inicial e final e consultas, dependendo do filtro a ser implementado. Estes dados são apresentados em tabelas, cujas informações podem ser transferidas de uma tabela para outra.
Ao transferir dados entre duas tabelas, existem duas possibilidades:
- as duas tabelas têm a mesma estrutura de colunas, ou
- a tabela de destino tem apenas algumas colunas em comum com a tabela original.
Assim, cada caso exige uma solução diferente.
No primeiro caso, quando as duas tabelas possuem a mesma estrutura de colunas, deve-se utilizar a seguinte sintaxe SQL em uma consulta:
INSERT INTO TabelaDestino SELECT * FROM TabelaOrigem
Já quando a tabela destino tem apenas algumas colunas em comum com a tabela original, é preciso indicar as colunas no código, conforme exemplo abaixo:
INSERT INTO TabelaDestino (NomeColuna01, NomeColuna02, NomeColuna03 ,...) SELECT NomeColuna01, NomeColuna02, NomeColuna03 ,... FROM TabelaOrigem
No segundo exemplo, os nomes das colunas não precisam ser iguais; apenas é necessário informar a origem e o destino dos valores.
Caso precise utilizar uma condição para transferência dos dados, também é possível utilizar a expressão WHERE; dessa forma, para maiores detalhes, recomendamos a leitura dos artigos relacionados abaixo.