Case para idade

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qui, 06 Dez 2007 9:57 am

Tõ aqui dinovo vamu lá

SELECT DISTINCT U.campo1, U.campo2, (U.nascimento, Sysdate) Idade,
IDADE(U.DTINICIO, Sysdate) Tempo_Ativo, duvida

FROM tabela1 U, (select
case
when idade(U.nascimento, Sysdate ) <= 17 then 1
when idade(U.nascimento, Sysdate) >= 18 then 2
when idade(U.nascimento, Sysdate) >= 24 then 3
when idade(U.nascimento, Sysdate) >= 29 then 4
when idade(U.nascimento, Sysdate) >= 34 then 5
when idade(U.nascimento, Sysdate) >= 39 then 6
when idade(U.nascimento, Sysdate) >= 44 then 7
when idade(U.nascimento, Sysdate) >= 49 then 8
when idade(U.nascimento, Sysdate) >= 54 then 9
when idade(U.nascimento, Sysdate) >= 59 then 10
end texto
WHERE
u.campo1= '00' and
bla, bla, bla


bom pessoal não estou conseguindo fazer com que o select traga as faixas etárias, porque será :?: ele dá erro e fica piscanco atraz do "WERE" porque?
carlos12
Localização: rio

Mensagemem Qui, 06 Dez 2007 10:07 am

E ai Carlos beleza??

cara, você quer usar o case como se fosse uma subconsulta??
você poderia postar o select todo aqui??

falou!!

[]'s
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP

Mensagemem Qui, 06 Dez 2007 10:24 am

Brother beleza?

Cara, como o Tineks falow, melhor seria colocar todo o trecho aqui, mas, faz um teste, acho que está faltando um parêntese depois da palavra TEXTO:
Código: Selecionar todos
SELECT DISTINCT U.campo1, U.campo2, (U.nascimento, Sysdate) Idade,
IDADE(U.DTINICIO, Sysdate) Tempo_Ativo, duvida

FROM tabela1 U, (select
case
when idade(U.nascimento, Sysdate ) <= 17 then 1
when idade(U.nascimento, Sysdate) >= 18 then 2
when idade(U.nascimento, Sysdate) >= 24 then 3
when idade(U.nascimento, Sysdate) >= 29 then 4
when idade(U.nascimento, Sysdate) >= 34 then 5
when idade(U.nascimento, Sysdate) >= 39 then 6
when idade(U.nascimento, Sysdate) >= 44 then 7
when idade(U.nascimento, Sysdate) >= 49 then 8
when idade(U.nascimento, Sysdate) >= 54 then 9
when idade(U.nascimento, Sysdate) >= 59 then 10
end texto)
WHERE
u.campo1= '00' and
bla, bla, bla



Segue um exemplo com sub-consulta:
Código: Selecionar todos
SELECT *
  FROM (SELECT CASE
                  WHEN (TO_CHAR (SYSDATE, 'dd')) < 30
                     THEN 1
                  ELSE 2
               END
          FROM DUAL) teste


qualquer coisa, manda ai.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Mensagemem Qui, 06 Dez 2007 10:35 am

pow cara deu certinho eu estou falando vocês são feras mesmo, mas aqui sobre as tabelas você me apertou agora, rs é de empresa e as tabelas ficam sobre a lei sarbanes, num posso correr o risco, imagina alguém vê ai derrepente rola uma passagem pro (parana)(para na rua) hehehe, ai já viu né, espero que entenda amigo num fica chateado mas quando posto aqui eu sempre dou uma disfarçada nos campos.

mas ó a tabela está bem idêntica


deu certinho mais uma vez brigadão
carlos12
Localização: rio

Mensagemem Qui, 06 Dez 2007 11:01 am

Beleza, brother, está certíssimo.
É que, realmente não tem como a gente ajudar, quando se falta uma ou outra informação ou, a mensagem é específica para aquela modelagem...

Mas, vai fazendo assim, sem problemas...
quando não puder, mascara, cria uma tabela parecida com outras informações e manda pra gente.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron