Respondido 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
    END

    esse 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'
    END

    e 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
     
     Resposta Proposta

    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

  • 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
     
     Respondido Contém Código

    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
    •