quinta-feira, 12 de abril de 2012

Campos associados em uma consulta SQL


Buenas pessoal, hoje rapidamente lembrei de algo que muitas vezes é comum mas não é de uso de todos. Fazer SQL com campos de tabelas associadas. Ou a grosso modo, pegar o valor de um campo de outra tabela e mostrar no sql que estamos construindo. No PG, eu tenho sempre uma função que ao passar o ID que esta gravado na tabela principal a tabela secundária, me retorna o valor do campo que desejo. Isto, daria para fazer sem a necessidade de uma função, mas é mais organizado e tu pode aproveitar em outras partes do sistema.

Bom, esta função, recebe o ID da Cidade que esta na tabela de clientes e retorna o nome da cidade

CREATE OR REPLACE FUNCTION "RetornaCidadeNome"(Integer)
  RETURNS Varchar AS
$BODY$
   Select Cast("NomeCidade" as Varchar)
   From   "Cliente"
   Where  "CodigoIDCliente"=$1
$BODY$
  LANGUAGE 'sql';

Este é o SQL que mostra os dados dos clientes mais o nome da cidade, do cliente 1 ao 1000

Select "CodigoCliente",
           "NomeCliente,
           "RetornaCidadeNome"("CodigoIDCidadeCliente") as "XNomeCidade"
From "Cidade"
Where "CodigoCliente" between 1 and 1000;

Detalhes: Aspas duplas, garante que no postgresql o nome da função fique como foi digitada.

Obs: Pessoal, fiz algumas alterações pontuações, das quais, estão em negrito.

Nenhum comentário:

Postar um comentário

Comente sempre por favor.