Aprenda PL/SQL

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
  

Mensagemem Qua, 11 Jan 2017 1:58 pm

oi,

Tenho o seguinte sql:

Código: Selecionar todos
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?
Robson Costa
Localização: Campo Grande - MS

Mensagemem Qua, 11 Jan 2017 3:18 pm

Boa tarde,

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

Código: Selecionar todos
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.
spernega
Localização: São Paulo - SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Yahoo [Bot] e 0 visitantes