none
Aplicar filtro depois de executar a query RRS feed

  • Pergunta

  • Olá pessoal minha dúvida é a seguinte tenho a query abaixo

    select * from 
    (Select 
    cartoes.nome, 
    cartoes.cartao_id,
    cartoes.titular as cartaotitu,
    conveniados.chapa, 
    cartoes.codcartimp,   
    conveniados.titular,
    cartoes.DATA_NASC,
    conveniados.empres_id, 
    conveniados.cidade, 
    cartoes.dtcadastro,   
    codcartimp as cartao,
    empresas.nomecartao as empresa, 
    cartoes.conv_id 
    from cartoes join conveniados on conveniados.conv_id = cartoes.conv_id 
    and coalesce(conveniados.apagado,'N') <> 'S' join 
    empresas on empresas.empres_id  = conveniados.empres_id    
    where coalesce(cartoes.apagado,'N') <> 'S'
     and coalesce(cartoes.jaemitido,'N') = 'N' 
     and coalesce(conveniados.liberado,'S') = 'S'
     and coalesce(cartoes.liberado,'S') = 'S' 
    ) as a where datediff(year,a.DATA_NASC,getdate()) >= 18

    preciso retornar os conveniados maiores de 18 apenas se a empresa tiver id Empres_id = 455 se não não aplica o filtro:  datediff(year, a.Data_Nasc, getdate()) >= 18

    Alguém pode me ajudar? Obrigado 

    terça-feira, 31 de março de 2015 13:54

Respostas

  • Bom dia,

    Acredito que a tabela derivada não é necessária. Experimente mais ou menos dessa forma:

    Select 
        -- ...
    from -- ...   
    where 
        coalesce(cartoes.apagado,'N') <> 'S' and 
        coalesce(cartoes.jaemitido,'N') = 'N' and 
        coalesce(conveniados.liberado,'S') = 'S' and 
        coalesce(cartoes.liberado,'S') = 'S' and
        ( conveniados.empres_id <> 455 or
          datediff(year,a.DATA_NASC,getdate()) >= 18 )


    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 31 de março de 2015 14:29

Todas as Respostas