Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1266 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

ola, Alguem pode me dar uma orientação como faria para trazer clientes com faixas de idades de sql exemplo cliente de 30 /40 anos tem x de 41 a 51 tem y
eu estou fazendo assim mais traz todas as  idades

 

              SELECT

 EXTRACT(YEAR FROM CURRENT_DATE) -  EXTRACT(YEAR FROM C.DATNASC) IDADE, p.nomplano

FROM TAB_CLIE C
inner JOIN tab_cont p1 ON (p1.codclie = c.codclie)

lEFT JOIN tab_plano p ON (p.codplano = p1.codplan)
group by

 EXTRACT(YEAR FROM CURRENT_DATE) -  EXTRACT(YEAR FROM C.DATNASC), p.nomplano

Postado

tentei assim tambem nao deu 

 select  count(*),

 case when trunc((CURRENT_DATE - C.DATNASC) / 365.25) <= 20 then
         'ate 20'
          when trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 21 and 31 then
         'de 25 a 30'
         when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 32 and 41 then
         'de 31 a 35'  end


         FROM TAB_CLIE C
inner JOIN tab_cont p1 ON (p1.codclie = c.codclie)

lEFT JOIN tab_plano p ON (p.codplano = p1.codplan)
group by

CURRENT_DATE - C.DATNASC, p.nomplano

  • Moderadores
Postado
11 horas atrás, dreamsoft_PR disse:

group by

CURRENT_DATE - C.DATNASC, p.nomplano

Tente trocar para:

group by
  2

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
20 minutos atrás, BigWings disse:

Tente trocar para:


group by
  2

 

nao sei fiz errado vc diz assim:

 

 select  count(*),

 case when trunc((CURRENT_DATE - C.DATNASC) / 365.25) <= 20 then
         'ate 20'
          when trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 21 and 31 then
         'de 25 a 30'
         when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 32 and 41 then
         'de 31 a 35'  end  , p.nomplano


         FROM TAB_CLIE C
inner JOIN tab_cont p1 ON (p1.codclie = c.codclie)

inner JOIN tab_plano p ON (p.codplano = p1.codplan)


group by
  2

 

deu erro

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

  • Moderadores
Postado

Perceba que você incluiu outra coluna (p.nomplano) que não é um campo agregado, então precisa adicionar também no group by.

O 2 indica o índice da coluna no select.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

select  count(*),

 case when trunc((CURRENT_DATE - C.DATNASC) / 365.25) <= 20 then
         'ate 20'
          when trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 21 and 31 then
         'de 25 a 30'
         when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 32 and 41 then
         'de 31 a 35'  end, p.nomplano


         FROM TAB_CLIE C
inner JOIN tab_cont p1 ON (p1.codclie = c.codclie)

lEFT JOIN tab_plano p ON (p.codplano = p1.codplan)
group by

CURRENT_DATE - C.DATNASC, p.nomplano


ele so ao grupa o resultado

Postado (editado)

obrigado fiz assim deu certo

 

select  count(*),

 case when trunc((CURRENT_DATE - C.DATNASC) / 365.25) <= 20 then
         'GRUPO 1 -> até 20'
          when trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 21 and 30 then
         'GRUPO 2 -> 21 a 30'
         when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 31 and 41 then
         'GRUPO 3 -> 31 a 41'
           when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 42 and 51 then
         'GRUPO 4 -> 42 a 51'
          end,

         p.nomplano


         FROM TAB_CLIE C
inner JOIN tab_cont p1 ON (p1.codclie = c.codclie)

lEFT JOIN tab_plano p ON (p.codplano = p1.codplan)
group by

 case when trunc((CURRENT_DATE - C.DATNASC) / 365.25) <= 20 then
         'GRUPO 1 -> até 20'
          when trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 21 and 30 then
         'GRUPO 2 -> 21 a 30'
         when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 31 and 41 then
         'GRUPO 3 -> 31 a 41'
           when  trunc((CURRENT_DATE - C.DATNASC) / 365.25)  between 42 and 51 then
         'GRUPO 4 -> 42 a 51'
          end, p.nomplano

         

Editado por dreamsoft_PR
  • Este tópico foi criado há 1266 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.