Prezado colega;
preciso num select, agrupar registros por ano em 3 grupos: anos ate 2010, de 2011 até 2015 e de 2016 até o momento. Pensei eum usar o greatest() mas só consegui usar uma vez, por exemplo: greatest to-char(meucampo, 'yyyy', 2010) este campo é data aí ele inclui a coluna com o valor 2010 para todos os registros cuja data é até 2010. mas não consigo fazer para os outros 2 grupos que são de 2011 a 2015 e de 2016 em diante. Espero contar com sua ajuda ...
Obrigado,
greatest ou opção parecida
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Olá,
você pode adicionar um campo e fazer um case e tratar depois.
Outra solução (provavelmente menos eficiente) seria fazer 3 consultas unidas por UNION ALL.
você pode adicionar um campo e fazer um case e tratar depois.
select ...
case when my_date < '01/01/2011' then
2010
when my_date between '01/01/2011' and '31/12/2015' then
2015
else
2016
end my_sub_group
from .....
where..... ;
Select ...... , 2010 sub_group from ..... where .... my_date < '01/01/2011'
UNION ALL
Select ...... , 2015 sub_group from ..... where .... my_date between '01/01/2011' and '31/12/2015'
UNON ALL
Select ...... , 2010 sub_group from ..... where .... my_date > '01/01/2016'
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Google [Bot] e 1 visitante