Jump to content


Photo

Sql Group By, Ordenando Por Data


  • Faça o login para participar
2 replies to this topic

#1 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 29/06/2009, 10:11

Tenho uma tabela com registros de eventos de meus clientes, com a seguinte extrutura:

-id
-data_ini
-evento
-idCliente

Preciso criar uma sql para listar apenas 1 evento de cada cliente, mas que esteja ordenada corretamente pelo campo data_ini (date).

Usei a sql desta forma, mas nao listou os eventos na ordem correta, listando sempre o ultimo registro do cliente que possui mais de 1 evento cadastrado, o qual nao é o evento certo a ser exibido.

SELECT * FROM agenda WHERE data_ini >= '$hoje' GROUP BY idCliente ORDER BY data_ini ASC

Edição feita por: <?PHPMAN?>, 29/06/2009, 12:50.

Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#2 Fábio Sciubba

Fábio Sciubba

    Turista

  • Usuários
  • 30 posts
  • Sexo:Não informado

Posted 29/06/2009, 11:40

[codebox] SELECT * FROM agenda WHERE data_ini >= '$hoje' GROUP BY idCliente ORDER BY data_ini ASC LIMIT 0 , 1 [/codebox]

Isso limitará o resultado a uma linha apenas, agora quanto a ordenação e ao filtro >= depende de como voce guarda a data no banco e o que tem nessa svariavel $hoje



Voce ja tentou ordenar pelo id desc? o id mais novo deve ser a data mais nova! Para o caso do Id ser auto increment e a data for automatica... Saco? :D

#3 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 29/06/2009, 12:48

SELECT * FROM agenda WHERE data_ini >= '$hoje' GROUP BY idCliente ORDER BY data_ini ASC LIMIT 0 , 1

Isso limitará o resultado a uma linha apenas, agora quanto a ordenação e ao filtro >= depende de como voce guarda a data no banco e o que tem nessa svariavel $hoje

Voce ja tentou ordenar pelo id desc? o id mais novo deve ser a data mais nova! Para o caso do Id ser auto increment e a data for automatica... Saco? :D


O LIMIT irá limitar a quantidade total dos registros, mesmo se eu colocar um limite de registros, vai continuar pegando X registros, mas nao ordenados do jeito que eu preciso, portanto nao funciona dessa forma que voce disse.

OBS: a data é no formato DATE (YYYY-mm-DD) e nao é automatica, é prenchida pelo user na hora do cadastro, a variavel $hoje recebe a data atual $hoje = date('Y-m-d');
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq