Corrija o bugPráticaSQL
Corrigir linha do tempo embaralhada
Corrigir a ordenação para usar ano antes de mes na linha do tempo.
A consulta abaixo deveria devolver cliente, ano e mes da tabela pedidos com status igual a 'entregue' em ordem cronológica. Ela ordena só por mes e mistura anos diferentes. Corrija para ordenar por ano e depois por mes.
Revisa etapa da trilha 6
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT cliente, ano, mes FROM pedidos WHERE status = 'entregue' ORDER BY ano, mes;O WHERE com status igual a 'entregue' já filtra certo e deve ser mantido. O ORDER BY só com mes junta dezembro de 2022 com dezembro de outro ano. Para linha do tempo, ano vem primeiro e mes desempata quando o ano repete.
Erro comum: Manter só mes no ORDER BY mantém janeiros juntos mesmo de ano diferentes.
Tabelas
pedidos 10 linhas
| id | cliente | cidade | ano | mes | valor | status |
|---|---|---|---|---|---|---|
| 1 | Ana | Sao Paulo | 2023 | 3 | 150.5 | entregue |
| 2 | Beto | Campinas | 2023 | 1 | 89.9 | pendente |
| 3 | Carla | Sao Paulo | 2022 | 12 | 150.5 | entregue |
| 4 | Diego | Santos | 2023 | 1 | 200 | cancelado |
| 5 | Elisa | Campinas | 2022 | 12 | 45 | entregue |
| 6 | Fabio | Sao Paulo | 2023 | 3 | 89.9 | entregue |
| 7 | NULL | Santos | 2023 | 2 | 120 | pendente |
| 8 | Helena | Campinas | 2022 | 11 | 300 | entregue |
| 9 | Igor | Sao Paulo | 2023 | 2 | 120 | pendente |
| 10 | Julia | Santos | 2022 | 11 | 75.25 | entregue |
O código ao lado tem um bug. Encontre, corrija e verifique.