Consulta SQL complicada

Delphi

02/02/2004

Salve pessoal!

Estou com duvida em uma consulta sql ... vou tentar explicar para ver se alguem pode me ajudar. Estou usando paradox e delphi 7
Tenho um programa que controla vendas, nele tem uma tabela que se chama:

TB_Pedido com os seguintes campos:
Cod_Cliente
Cod_Vendedor
Cod_Corretor
Todos este tres campos do tipo inteiro

Tenho tambem as tabelas:
TB_Cliente --> onde esta o código do cliente e o nome
TB_Vendedor --> idem
TB_Corretor --> idem

Preciso fazer uma consulta na tabela pedido mas eu nao sei como substituir o codigo pelo nome ... Por exemplo no meu relatório ao inves de aparecer o código do cliente ..... eu queria que mostrasse o nome correspondente ao código e assim para Cod_Vendedor e Cod_Corretor tambem.

Se alguem puder me dar esta dica agradeço desde já.

valewww


Marcelo Bh

Marcelo Bh

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

02/02/2004

Colega,

SELECT * FROM tb_pedidos PED
INNER JOIN tb_clientes CLI
ON ( PED.cod_cliente = CLI.cod_cliente)
INNER JOIN tb_vendedor VEN
ON ( PED.cod_vendedor = VEN.cod_vendedor)
INNER JOIN tb_corretor COR
ON ( PED.cod_corretor = COR.cod_corretor)



GOSTEI 0
Fábio Valente

Fábio Valente

02/02/2004

[quote:2ab29b21ac=´Aroldo Zanela´]Colega,

SELECT * FROM tb_pedidos PED
INNER JOIN tb_clientes CLI
ON ( PED.cod_cliente = CLI.cod_cliente)
INNER JOIN tb_vendedor VEN
ON ( PED.cod_vendedor = VEN.cod_vendedor)
INNER JOIN tb_corretor COR
ON ( PED.cod_corretor = COR.cod_corretor)
[/quote:2ab29b21ac]

Colega, não faltou os campos desejados das ´sub-consultas´???
E prefiro o LEFT, assim não me retorna associações nulas... :]

Ficaria Assim:

SELECT tb_pedidos.*, tb_clientes.nome, tb_vendedor.nome, tb_corretor.nome FROM tb_pedidos PED
LEFT JOIN tb_clientes CLI
ON ( PED.cod_cliente = CLI.cod_cliente)
LEFT JOIN tb_vendedor VEN
ON ( PED.cod_vendedor = VEN.cod_vendedor)
LEFT JOIN tb_corretor COR
ON ( PED.cod_corretor = COR.cod_corretor)


Espero ter ajudado,


GOSTEI 0
Marcelo Bh

Marcelo Bh

02/02/2004

Poxa Nervouz
Valeu mesmo pela dica, funcionou perfeitamente.

Muito obrigado!


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

02/02/2004

Colega, não faltou os campos desejados das ´sub-consultas´???

* retorna todas as colunas da junção (join)

E prefiro o LEFT, assim não me retorna associações nulas... :]


No curso 2318 - B (Consultando o Microsoft SQL Server 2000 com o Transact-SQL) tem o seguinte:

As associações externas à esquerda ou à direita combinam registros de duas tabelas que correspondem à condição de associação, além de quaisquer registros não-correspondentes da tabela à esquerda ou à direita, conforme especificado na cláusula JOIN. Os registros que não correspondem à condição de associação exibem NULL (Nulo) no conjunto de resultados. Você também pode usar associações externas completas para exibir todos os registros nas tabelas associadas, independentemente de as tabelas terem ou não valores correspondentes.


GOSTEI 0
POSTAR