Ajuda em SQL
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
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
Curtidas 0
Respostas
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
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
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
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
12/07/2005
Obrigado pela boa vontade pessoal, mas nenhuma das 2 dicas funcionou.
Alguem mais tem alguma idéia?
Obrigado,
Pablo
Alguem mais tem alguma idéia?
Obrigado,
Pablo
GOSTEI 0