Consulta SQL complicada
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
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
Curtidas 0
Respostas
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
02/02/2004
[quote:2ab29b21ac=´Aroldo Zanela´]Colega,
[/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:
Espero ter ajudado,
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)
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
02/02/2004
Poxa Nervouz
Valeu mesmo pela dica, funcionou perfeitamente.
Muito obrigado!
Valeu mesmo pela dica, funcionou perfeitamente.
Muito obrigado!
GOSTEI 0
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