none
select case com retorno RRS feed

  • Pergunta

  • Pessoal

    Preciso de uma ajuda neste select com case

    select
    case

    when exists (Select rf.PlacaRouboFurto From Veiculo v Join RouboFurto rf On v.Chassi = rf.Chassi Where v.Placa = 'AAA0001') then
    'Veiculo com Furto'
    else
    'Veiculo sem Furto'
    end as RouboFurto
    FromVeiculo v
    Join RouboFurto rf
    On v.Chassi = rf.Chassi
    Where v.Placa = 'AAA0001'

    Acontece que o veiculo placa 'AAA0001', aparece a mensagem 'Veiculo com furto' tudo ok
    porem o veiculo placa 'AAA0002' que deveria aparecer a mensagem 'Veiculo sem Furto' não aparece
    ja que este veiculo não tem Roubo ou furto.

    Alguem pode me ajudar


    Maricelmo
    terça-feira, 10 de janeiro de 2012 15:03

Todas as Respostas

  • Olá Maricelmo,

     

    Tente refazer sua consulta desta forma, veja se te ajuda:

     

    SELECT V.PLACA , (CASE WHEN rf.Chassi IS NOT NULL THEN 'Veiculo com Furto' ELSE 'Veiculo sem Furto' END) as RouboFurto
    FROM FromVeiculo V
    LEFT Join RouboFurto rf
    On v.Chassi = rf.Chassi
    

    Se o veículo 'AAA0002' não tem furto, ele realmente não vai aparecer pois você está usando inner join com a tabela RouboFurto.

    Abraço,

     


    David Silva MCP | MCTS | ITILF Blog: http://tilive.wordpress.com
    • Editado David Silva terça-feira, 10 de janeiro de 2012 15:22
    • Marcado como Resposta Maricelmo terça-feira, 10 de janeiro de 2012 15:38
    • Não Marcado como Resposta Maricelmo terça-feira, 7 de fevereiro de 2012 13:27
    terça-feira, 10 de janeiro de 2012 15:20
  • Ola, David

    Muito Obrigado por sua ajuda!

    porem caso o veiculo não tiver ocorrencia de Roubo ou Furto gostaria que aparece os dados. meu codigo esta assim: Declare @Placa Varchar(7) Set @Placa = 'AAA0001' Select v.ID,v.placa,v.Renavam,v.Chassi,v.Fabricacao, v.NumeroMotor, ( SELECT (CASE WHEN rf.Chassi IS NOT NULL THEN 'Veiculo com Furto' ELSE 'Veiculo sem Furto' END) From Veiculo V LEFT Join RouboFurto rf On v.Chassi = rf.Chassi Where v.Placa = @Placa ) as RouboFurto, CodigoRetorno = 0 From Veiculo v Where v.Placa = @placa
    • Editado Maricelmo terça-feira, 7 de fevereiro de 2012 13:21
    terça-feira, 10 de janeiro de 2012 15:38