Query errada...

02/11/2005

0

[size=11:ef98a3017a]Colegas,
Não tenho muita experiência com SQL e estou encontrando dificuldades para solucionar um problema.
Tenho uma tabela de compras onde preciso selecionar os seguintes campos - [compra_cod], [compra_data] e [compra_hora], onde para cada código, tenha a maior hora da maior data. Ex:
cod - data - hora
100 - 22/10/05 - 23:30
100 - 23/10/05 - 01:30
100 - 23/10/05 - 02:30
O resultado deverá ser respectivamente [100], [23/10/05] e [02:30].

O que ocorre é que estou tentando utilizar a seguinte query...
[color=red:ef98a3017a]SELECT compra_cod, MAX(compra_data) AS data, MAX(compra_hora) AS hora
FROM compra
GROUP BY compra_cod[/color:ef98a3017a]
...que me retorna [100], [23/10/05] e [[color=red:ef98a3017a]23:30[/color:ef98a3017a]], ou seja, a maior hora da tabela e não a maior hora da maior data.

Alguém poderia dar um help com esta query ou apresentar alguma outra idéia?

[b:ef98a3017a]Tankz... ;-)[/b:ef98a3017a]
[/size:ef98a3017a]


M.sant

M.sant

Responder

Posts

02/11/2005

Robertolucio

Oha, faz bastante tempo que não eu não ´vejo´ SQL SERVER.

Com certeza existem muitas formas ( e muito melhores do que essa ) de resolver esse teu problema.

SELECT top 1 compra.compra_cod, MAX(compra.compra_data) AS data, hora
FROM compra
inner join (select compra_cod, compra_data, max(compra_hora) as hora
from compra
group by compra_cod, compra_data) as teste
on (teste.compra_cod = compra.compra_cod)
GROUP BY compra.compra_cod, hora

Não pude testar, pois como eu disse, ha muito tempo não estou trabalhando com o SQL SERVER.

Qualquer dúvida, se eu puder ajudar, estou a disposição.

Att,

Roberto Lucio


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