sexta-feira, 28 de outubro de 2011

Usando comando INSERT com SELECT no FireBird

Aqui vai um exemplo simples de como usar os dois comandos juntos para inserir dados que estão em outra tabela.

Vamos usar um caso em que tenhamos estas duas tabelas:

Tabela Cliente (TAB_CLI):
ID_CLIENTE
NOME_CLIENTE
TEL_CLIENTE

Tabela Vendas (TAB_VENDA):
ID_VENDA
ID_CLIENTE
PRODUTO
VALOR

Para facilitar na hora de escolher qual cliente efetuou a compra, podemos passar o nome do cliente como parâmetro e inserir seu ID automaticamente.
Fica assim:

insert into TAB_VENDA (ID_VENDA, ID_CLIENTE, PRODUTO, VALOR) VALUES (1, (select ID_CLIENTE from TAB_CLI where NOME_CLIENTE =’JOÃO’), ‘PRODUTO 1′, 10);

No local onde será inserido o valor do cliente coloca-se um select que retornará seu ID pelo nome passado na cláusula where, note que este select funcionará se não houver em registros duplicados, se existirem dois clientes com o nome ‘João’ você poderá adicionar a venda para outro cliente com o mesmo nome. Para corrigir este problema você poderá passar outro parâmetro junto ao nome, que não tenha duplicação, como por exemplo, o RG ou CPF do mesmo.

Obs.: O mesmo comando rodou sem problemas no PSQL.

Abraços até a próxima.

0 comentários:

Postar um comentário