Ordenar dependo do status + datetime ASC ou DESC
Bom dia pessoal!
Me orientem aqui, se puderem:
Estou usando mysql.
Preciso ordenar Eventos conforme a sequência:
1) os que estão acontecendo: status = started
(ordem crescente datetime)
2021-12-07 07:00:00 | started
2021-12-07 08:00:00 | started
2021-12-07 09:00:00 | started
2) os que vão acontecer: status = created
(ordem crescente datetime)
2021-12-07 13:00:00 | created
2021-12-07 14:00:00 | created
2021-12-07 15:00:00 | created
3) os que passaram da data, mas não foram iniciados
(ordem decrescente datetime)
2021-12-07 06:00:00 | created
2021-12-07 05:00:00 | created
2021-12-07 04:00:00 | created
4) os finalizados: status = finished
(ordem decrescente datetime)
2021-12-06 12:00:00 | finished
2021-12-05 17:00:00 | finished
2021-12-04 19:00:00 | finished
Estava tentando com case when
order by
CASE
WHEN E.status = 'started' THEN 1
WHEN E.status = 'created' && eventDateTime >= NOW() THEN 2
WHEN E.status = 'created' && eventDateTime < NOW() THEN 3
WHEN E.status = 'finished' THEN 4
ELSE 5
END
Mas não sei combinar o THEN 1 + eventDateTime ASC ou DESC
Será que é possível resolver numa querie só?
Ou vou ter que fazer 4 consultas distintas?
Discussão (0)
Carregando comentários...