Fórum Ajuda em SQL #287714

12/07/2005

0

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

Responder

Posts

12/07/2005

Márcio

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


Responder

Gostei + 0

12/07/2005

Beppe

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


Responder

Gostei + 0

12/07/2005

Pablobr

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

Alguem mais tem alguma idéia?

Obrigado,

Pablo


Responder

Gostei + 0

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

Aceitar