none
Ajuda com SQL RRS feed

  • Pergunta

  • Eu quero fazer pesquisa de um dado em 4 tabelas. Conferir em qual das tabelas o dado está e que me volte o nome da pessoa e a tabela que ela está.

    Para testes, eu estou pesquisando pelo nome, tenho que entrar em 4 tabelas e voltar em qual tabela aquele nome se encontra e o nome. (no fim não sera o nome, é só para o teste). As tabelas são Diretoria, Disciplinário, Secretária e Professor. Em Diretoria o nome é NomeDir, em Disciplinário o nome é NomeDisc, em Secretária o nome é NomeSec, em Professor o nome é NomeProf.

    Agradeço desde já a ajuda.

    sábado, 7 de agosto de 2010 14:34

Todas as Respostas

  • Pedro Lourdes

    A principio, nao imagino uma forma de se fazer automatizado... mas fiz um exemplo prático usando CTE (disponivel somente no 2005 e 2008)

     declare @Diretoria as table (id int, NomeDir varchar(60))
    insert into @Diretoria values(1,'Darth Vader')
     declare @Disciplinario as table (id int, NomeDisc varchar(60))
    insert into @Disciplinario values(1,'R2D2')
     declare @Secretaria as table (id int, NomeSec varchar(60))
    insert into @Secretaria values(1,'Darth Vader')
     declare @Professor as table (id int, NomeProf varchar(60))
    insert into @Professor values(1,'R2D2')
    
    ;with cte_all as 
    (
      select tabela = 'Diretoria',id, nomeDir as 'Nome' from @Diretoria
      union all
      select tabela = 'Disciplinario',id, NomeDisc as 'Nome' from @Disciplinario
      union all
      select tabela = 'Secretaria',id, NomeSec as 'Nome' from @Secretaria
      union all
      select tabela = 'Professor',id, NomeProf as 'NomeProf' from @Professor
    )
    select * from cte_all where nome = 'Darth Vader'
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    segunda-feira, 9 de agosto de 2010 10:32