Agrupar no formato MM/YYYY mas ordenar no formato YYYY/MM

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

oi,

Tenho o seguinte sql:

Selecionar tudo

select to_CHAR(dt_atendimento,'MM/YYYY'),
       count(*) 
from tabela 
where dt_atendimento between '01/10/2016' and '11/01/2017' 
group by to_CHAR(dt_atendimento,'MM/YYYY') 
Quero ordenar o resultado da sáida deste sql pelo ano e depois pelo mês. Porém o Oracle não aceita dá a mensagem ORA-00979: não é uma expressão GROUP BY. Como podemos fazer para exibir como MM/YYYY mas ordernar como YYYY/MM?
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Boa tarde,

Tente trabalhar com data ao invés de usar o to_Char

Selecionar tudo

select to_char(dt_atendimento,'mm/yyyy'), qtd from (
select trunc(dt_atendimento,'month') dt_atendimento, count(*) qtd
from   tabela
where  dt_atendimento between '01-10-16' and '11-01-17' 
group  by trunc(dt_atendimento,'month')
order  by trunc(dt_atendimento,'month')) 
Veja se assim fica como você quer.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes