campo calculado com outro campo calculado
-
quinta-feira, 7 de junho de 2012 19:52
boa tarde não estou conseguindo utilizar os campos calculado nos analysis services, o seguinte criei um campo calculado para calcular a idade
CASE WHEN
DATEPART(MONTH,[DATA NASC.])<= DATEPART(MONTH,GETDATE()) AND
DATEPART(DAY,[DATA NASC.])<= DATEPART(DAY,GETDATE())
THEN
(DATEDIFF(YEAR,[DATA NASC.],GETDATE()))
ELSE
(DATEDIFF(YEAR,[DATA NASC.],GETDATE()))- 1
ENDesse codigo funcionar perfeitamente e o chamei de idade,
ai preciso de outro campo calculado para calcular a faixa etaria
CASE
WHEN IDADE BETWEEN 60 AND 64 THEN '1'
WHEN IDADE BETWEEN 65AND 74 THEN '2'
WHEN IDADE >= 75 THEN '3'
ENDe da erro na idade ,
nesse caso eu estou utilizando um campo calculado sobre outro a minha pergunta é se funciona isso ou terei que faze de outro jeito
grato
Rogerio
Todas as Respostas
-
sexta-feira, 8 de junho de 2012 12:59
Rogério, bom dia.
Criar membros calculados baseado em outros membros calculados é totalmente viável, desde que as dependências já estejam implementadas.
Ex.
Se deseja criar um membro calculado baseado no membro "idade", este já deve estar implementado no cubo.
Poderia postar a mensagem de erro?
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Junior Galvão - MVPMVP segunda-feira, 11 de junho de 2012 13:08
-
domingo, 10 de junho de 2012 18:29
a mensagem que da é
TITLE: Microsoft Visual Studio
------------------------------
Deferred prepare could not be completed.
Não foi possível preparar uma ou mais instruções.
Nome de coluna 'IDADE' inválido.
Nome de coluna 'IDADE' inválido.
Nome de coluna 'IDADE' inválido.
Nome de coluna 'IDADE' inválido.
Nome de coluna 'IDADE' inválido.
------------------------------
BUTTONS:
OK
------------------------------
mas o campo esta correto estou incluindo estes campos calculados no data source view
grato
Rogerio
- Editado thisderb domingo, 10 de junho de 2012 18:31
-
segunda-feira, 11 de junho de 2012 13:10
Rogerio,
A coluna Idade que você esta fazendo referência no segundo Case deve existe em seu ambiente para o que CASE possa fazer uso.
Então no case anterior especifique nome para a coluna, conforme o exemplo abaixo:
CASE WHEN DATEPART(MONTH,[DATA NASC.])<= DATEPART(MONTH,GETDATE()) AND DATEPART(DAY,[DATA NASC.])<= DATEPART(DAY,GETDATE()) THEN (DATEDIFF(YEAR,[DATA NASC.],GETDATE())) ELSE (DATEDIFF(YEAR,[DATA NASC.],GETDATE()))- 1 END As Idade
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta thisderb quinta-feira, 28 de junho de 2012 10:41

