Boa tarde galera, faz tempo que não escrevo quick tips para vocês mas agora estou de volta.

Hoje falarei sobre subselects em Firebird, dando uma dica simples de como se fazer, de forma eficiente, um subselect.

Suponhamos que temos a tabela Cliente, com os campos Código e Nome e Classificacao (1-Standard / 2-Premium / 3-Gold) e a tabela Pedido, com os campos NumPedido, CodCliente, ValorTotal.

Cliente - Estrutura



Cliente - Dados




Pedido - Estrutura




Pedido – Dados



Vamos fazer um select para pegar todos os clientes com o total pedido maior ou igual que 750.



Resultado




Beleza, resolvemos nosso problema com um simples join e um having. Agora imagine que tivéssemos que atualizar a classificação para Standard de todos os clientes com total pedido maior que 5000.

Neste caso, como não é possível fazermos join  no update no Firebird, basta que façamos um subselect.



É isso aí pessoal... até a próxima quick tip.

Um abraço.
Ricardo Coelho.