Tenho um aplicativo onde um usuário pode criar um pedido. Quero mostrar a ele os pedidos de hoje e então fazer o pedido normalmente. Assim:
Data de hoje: 2024-04-06
2024-04-06 #order1
2024-04-06 #order2
-then sort by normal
2024-04-08 #order4
2024-04-01 #order7
O que está passando pela minha cabeça é se eu classificar por normal, então minhas datas são mostradas duplicadas? Quero dizer, no começo é 2024-04-06, então eu classifico por normal a partir de 2024-04-08, então ele vai para baixo e então eu chego novamente em 2024-04-06. Então é possível classificar por hoje e depois por descanso sem mostrar duplicado?
atualmente este é meu código:
SELECT
l.id as location_id,
l.name,
lo.id,
lo.start_time,
lo.end_time,
lo.leader_id,
lo.is_storno,
lo.storno_at,
lo.storno_by,
lo.employees_need,
lo.created_at
FROM location_orders lo
INNER JOIN location l
ON l.id = lo.location_id
WHERE lo.tenant_id = $1 AND lo.deleted_by IS NULL
ORDER BY lo.start_time DESC LIMIT 50;
Acho que essa solução funciona, eu uso uma expressão condicional para colocar os pedidos de hoje no topo. Eu uso um
CASE
onde os pedidos de hoje recebem 0 e o resto recebe 1. Com isso, oORDER BY
primeiro ordenará os 0's (pedidos de hoje) e depois os 1's (outras datas). Espero que ajude, se você tiver alguma dúvida, pergunte.