Como ordenar resultado SQL com campo de outra tabela?
07/05/2008
0
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?
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
Curtir tópico
+ 0
Responder
Posts
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.
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.
A explicação do BurnBR resolveu o meu problema, valeu também emerson.en por ter respondido.
Vocês me ajudaram bastante.
Responder
Clique aqui para fazer login e interagir na Comunidade :)