Bom dia!
Estou com problemas na ordenação ao executar o comando wm_concat ou xmlagg.
Ex. No registro do cartão ponto, tenho uma tabela com as marcações (data e hora) para cada registro entrada 1, saída 1, entrada 2, saída 2. São 4 registros e ao colocar todos os horários juntos, o comando se perde ao ordenar pela hora.
Se eu fizer o select sobre um dia específico, funciona corretamente, mas se colocar de um período maior, ele se perde.
23/08/2016 Ter 354 06:13,11:00,12:15,15:29
24/08/2016 Qua 354 06:15,11:00,12:15,15:20
25/08/2016 Qui 354 06:14,12:15,15:10,11:00
Notem o último registro.
se fizer o select somente sobre o dia 25, fica assim:
25/08/2016 Qui 354 06:14,11:00,12:15,15:10
Como a formatação do horário é transformada em campo char, faço a ordenação pelo campo numérico da hora num subselect interno... Na realidade já fiz de várias formas e sempre ocorre esse problema.
Alguma ideia ???
wm_concat com order by incorreto
-
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Seg, 28 Mar 2011 11:39 am
- Localização: Feliz - RS
Olá...
Consegui resolver o problema (meio sem querer...)
Para o meu caso, deu certo após colocar a cláusula "distinct" junto ao parâmetro do wm_concat
ficou assim:
select ... wm_concat(distinct horario) ...
Para a ordenação, não vejo sentido incluir o distinct, mas ...
Dessa forma trouxe as marcações do ponto na sequencia correta que aconteceram...
Obrigado.
Consegui resolver o problema (meio sem querer...)
Para o meu caso, deu certo após colocar a cláusula "distinct" junto ao parâmetro do wm_concat
ficou assim:
select ... wm_concat(distinct horario) ...
Para a ordenação, não vejo sentido incluir o distinct, mas ...
Dessa forma trouxe as marcações do ponto na sequencia correta que aconteceram...
Obrigado.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes