Fórum Os 3 maiores preços (SQL) #149223

24/03/2003

0

SQL não é meu forte...

gostaria de uma string SQL que me retornasse o nome dos produtos com os três maiores preços unitários.

aí é onde tá o problema...

como selecionar APENAS os 3 maiores preços em uma lista de preços?.

e ainda por cima não é o preço que é pedido e sim o nome dos produtos correspondentes a esses preços...

Quem pode me dar uma ajuda?

PS.: apenas deve ser usado SQL ANSI, ou seja, nada de usar TOP. :)


Carlos Filho

Carlos Filho

Responder

Posts

24/03/2003

Okama

Vc não pode fazer uma consulta simples e um código para exibir os 3 maiores??

´Select * from tabela order by preco Desc´
Query1.Open;

Showmessage( Query1.FieldByName(´Campo´).asString );
Query1.Next;

Showmessage( Query1.FieldByName(´Campo´).asString );
Query1.Next;

Showmessage( Query1.FieldByName(´Campo´).asString );


Responder

Gostei + 0

24/03/2003

Marcelo Saviski

[color=blue:e6d1f59a86]select nome from tabela
where (preco = (select max(preco) from tabela)) or
(preco = (select max(preco) from tabela where preco <> (select max(preco) from tabela))) or (preco = (select preco from tabela where preco <> (select max(preco) from tabela where preco <> (select max(preco) from tabela))))[/color:e6d1f59a86]

é uma ganbiarra mas [color=red:e6d1f59a86]talvez[/color:e6d1f59a86] funcione.


Responder

Gostei + 0

24/03/2003

Carlos Filho

Vc não pode fazer uma consulta simples e um código para exibir os 3 maiores?? ´Select * from tabela order by preco Desc´ Query1.Open; Showmessage( Query1.FieldByName(´Campo´).asString ); Query1.Next; Showmessage( Query1.FieldByName(´Campo´).asString ); Query1.Next; Showmessage( Query1.FieldByName(´Campo´).asString );


na verdade não tenho nenhuma opção! Isso é um trabalho pra entregar amanha 3ª (25/03). O professor pediu!

Como exemplo nós usamos o banco de dados NorthWind que vem com o Access...


Responder

Gostei + 0

24/03/2003

Carlos Filho

[quote:9e2654e097=´Marcelo Saviski´][color=blue:9e2654e097]select nome from tabela
where (preco = (select max(preco) from tabela)) or
(preco = (select max(preco) from tabela where preco <> (select max(preco) from tabela))) or (preco = (select preco from tabela where preco <> (select max(preco) from tabela where preco <> (select max(preco) from tabela))))[/color:9e2654e097]

é uma ganbiarra mas [color=red:9e2654e097]talvez[/color:9e2654e097] funcione.[/quote:9e2654e097]

Testei aqui mas inicialmente nao funcionaou, contudo a dica que o professor deu é bem parecida com seu codigo, vou analizá-lo melhor

Muito obrigado!
:)


Responder

Gostei + 0

24/03/2003

Carnette

[quote=´Ðerek Wildstar´ na verdade não tenho nenhuma opção! Isso é um trabalho pra entregar amanha 3ª (25/03). O professor pediu!

Como exemplo nós usamos o banco de dados NorthWind que vem com o Access...


Bah meu bruxo....se, voce está aprendendo programação, independentemente de voce saber sql ou não...voce não tá sendo leal com voce mesmo..pois, ficar pedidno código de programa para apresentar na aula não é legal não....onde fica sua capacidade de consultar em livros e apostilas.....ficar pedindo codigo pronto não lhe auxilia em nada na forma de raciociono....pesquisar é bom, e só aumenta o conhecimento...não me leve a mal....se, voce fose meu aluno e pegase vc fazendo isto o que voce fez aqui...com certeza teria te reprovado....


Responder

Gostei + 0

24/03/2003

Anonymous

SELECT *
FROM (SELECT VP1.*,(SELECT COUNT(*)
FROM (SELECT DISTINCT(QTD_MOEDA) QTD_MOEDA
FROM VALORES_PACOTE VP2) T
WHERE T.QTD_MOEDA > VP1.QTD_MOEDA) QTD
FROM VALORES_PACOTE VP1) TUDO
WHERE QTD < 7
ORDER BY 4 DESC

tabela
valores_pacote

coluna qtd_moeda


[]´s


Responder

Gostei + 0

24/03/2003

Carlos Filho

[quote=´Ðerek Wildstar´ na verdade não tenho nenhuma opção! Isso é um trabalho pra entregar amanha 3ª (25/03). O professor pediu! Como exemplo nós usamos o banco de dados NorthWind que vem com o Access...


Bah meu bruxo....se, voce está aprendendo programação, independentemente de voce saber sql ou não...voce não tá sendo leal com voce mesmo..pois, ficar pedidno código de programa para apresentar na aula não é legal não....onde fica sua capacidade de consultar em livros e apostilas.....ficar pedindo codigo pronto não lhe auxilia em nada na forma de raciociono....pesquisar é bom, e só aumenta o conhecimento...não me leve a mal....se, voce fose meu aluno e pegase vc fazendo isto o que voce fez aqui...com certeza teria te reprovado....


Amiguinho, não precisa se ´arretar´ por causa da minha atitude...
não é nada para nota, muito menos algo que me deixará burro ou malvisto...

você mesmo disse com outras palavras que eu deveria consultar. Foi o que eu fiz: consultei seu fórum! vc deve estear orgulhoso pois é moderador (ou dono, sei lá) de um sistema eficiente de aprendizado, pois eu nao pedi a resposta em si, eu quis aprender, E APRENDI!

agradeço a Marcelo Saviski por ter me dado a luz que eu precisava. Acho que num universo de 8 questões de arrancar o couro que o professor passou, pedir ajuda em uma não é nenhum sacrilégio, VOCÊ NÃO ACHA???


Responder

Gostei + 0

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

Aceitar