Como ordenar resultado SQL com campo de outra tabela?

07/05/2008

0

SQL

Estou com um problema, procurei no forum, mas não achei a solução.

Estava programando um sistema para controle de vendas, em uma tabela Clientes.db adicionei CodCliente, NomeCliente e outras informações em outra tabela Vendas.db tenho CodCliente, DataCompra, CodProduto e uma terceira tabela Produto.db com CodProduto, NomeProduto, ValorProduto, Descricao

Estou querendo listar todos os Clientes que compraram um determinado produto e as datas da compra. Até aí usei um TQuery (qVendas) com o seguinte código SQL:

select * from Vendas
where CodProduto = :CodProduto

Adicionei os Campos NomeProduto e NomeCliente através de New field ... e lookup nas outras tabelas (Produto.db e Clientes.db), o programa está funcionando e encontra todos os resultados corretamente. Porém na ordem que foram adicionados no banco de dados.

Precisava ordernar e consegui ordenar por cliente adicionando a linha:

order by CodCliente

no sql do qVendas, porém eu queria mesmo era ordenar pelo Nome do Cliente, e o comando:

order by NomeCliente

provoca um erro, pois o mesmo não é um campo original da tabela Vendas.db

Existe alguma maneira para eu ordernar o resultado por ordem alfabética do nome dos clientes?


Grannus

Grannus

Responder

Posts

07/05/2008

Emerson Nascimento

trabalhe com joins na instrução sql


Responder

07/05/2008

Burnbr

Boa atrde,

SELECT C.CODCLIENTE , C.NOME , D.DATACOMPRA , P.CODPRODUTO , P.DESCRICAO FROM CLIENTES C , VENDAS V , PRODUTO P
WHERE C.CODCLIENTE = V.CODCLIENTE
AND V.CODPRODUTO = P.CODPRODUTO
ORDER BY C.NOME , D.DATACOMPRA

ordenado por cliente e por data da compra.


Espero ter ajudado.


Responder

07/05/2008

Grannus

Obrigado!

A explicação do BurnBR resolveu o meu problema, valeu também emerson.en por ter respondido.

Vocês me ajudaram bastante.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar