Ajuda em SQL

Delphi

12/07/2005

Olá pessoal,

Uso MySQL e estou com dificuldades para criar um Select. Vou expor meu problema:

tabela1
nome datahora quantidade

Quero que minha Query retorne os registros máximos de cada dia.
Oque consegui foi:

SELECT DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d´) AS DIA, DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d ¬H:¬i:¬S´) AS DATAHORA, MAX(QUANTIDADE)
FROM TABELA1
WHERE NOME = ´CARLOS´
GROUP BY DIA

Acontece que o resultado me traz a quantidade máxima mas a datahora não é a datahora do registro máximo. A datahora é sempre do 1º registro do dia.

Exemplo de resultado:

dia datahora quantidade
12/07/2005 12/07/2005 00:00:00 1000

** Mas essa quantidade 1000 pertence às 12/07/2005 13:00:00.

Exemplo de resultado esperado:

dia datahora quantidade
12/07/2005 12/07/2005 13:00:00 1000

Alguem sabe como construo uma Query para obter oque eu desejo como resultado?

Obrigado,

Pablo


Pablobr

Pablobr

Curtidas 0

Respostas

Márcio

Márcio

12/07/2005

Tenta isso....

SELECT DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d´) AS DIA, DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d ¬H:¬i:¬S´) AS DATAHORA, MAX(QUANTIDADE)
FROM TABELA1
WHERE NOME = ´CARLOS´
GROUP BY DIA, DATAHORA


GOSTEI 0
Beppe

Beppe

12/07/2005

Não sei se funciona, mas...

SELECT DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d´) AS DIA, DATE_FORMAT(DATAHORA, ´¬Y-¬m-¬d ¬H:¬i:¬S´) AS DATAHORA, MAX(QUANTIDADE)
FROM TABELA1
WHERE NOME = ´CARLOS´ AND QUANTIDADE = MAX(QUANTIDADE)
GROUP BY DIA


GOSTEI 0
Pablobr

Pablobr

12/07/2005

Obrigado pela boa vontade pessoal, mas nenhuma das 2 dicas funcionou.

Alguem mais tem alguma idéia?

Obrigado,

Pablo


GOSTEI 0
POSTAR