none
Consulta con EXISTS no filtra resultados RRS feed

  • Pregunta

  • buenas tardes, quisisera que me ayudaran con una consulta. Tengo dos tablas una persona y otra pasaporte2. Estan asociadas por un ID, quiero hacer una consulta en un solo bloque que compruebe si en la tabla pasaporte2 hay un determinado pasaporte y si esta, entonces que me traiga todos los datos de esa persona. Me diran porque no buscas directamente en personas si ya tienes un campo pasaporte? Porque en la tala pasaporte2 hay mas de un pasaporte, en caso de que una persona falsifico algun documento y es alli donde se guardan los adicionales.  La habia hecho asi:

    ALTER PROCEDURE SpBuscarPerson
    @IdPer nchar (25)
    AS
        SELECT tblPersonasB.ID, tblPersonasB.Pasaporte, tblPersonasB.Nombres, tblPersonasB.Apellidos, tblPersonasB.Nacionalidad, tblPersonasB.FechaNacimiento
        FROM tblPersonasB
        WHERE EXISTS (SELECT tblPasaporte.ID,tblPasaporte.Pasaporte
        FROM tblPasaporte INNER JOIN tblPersonasB ON tblPersonasB.ID=tblPasaporteA.ID
        WHERE tblPasaporte.Pasaporte=@IdPer)

    Ejecutio el procedimiento, pasandole un codigo de pasaporte que esta en tblPasaporte y me trae es toda la tabla, no me filtra la persona unicamente.

    Me podrian ayudar? grac

    miércoles, 24 de abril de 2013 20:16

Respuestas

  • Hola,

    Por que no probas con este codigo:

    ALTER PROCEDURE SpBuscarPerson
    @IdPer nchar (25)
    AS
     SELECT tblPersonasB.ID, tblPersonasB.Pasaporte, tblPersonasB.Nombres, tblPersonasB.Apellidos, tblPersonasB.Nacionalidad, tblPersonasB.FechaNacimiento
        FROM tblPersonasB
        WHERE EXISTS (SELECT *
        FROM tblPasaporte  
        WHERE tblPasaporte.Pasaporte=@IdPer and tblPersonasB.ID=tblPasaporteA.ID)
        


    Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.

    • Marcado como respuesta Roxseni miércoles, 24 de abril de 2013 20:34
    miércoles, 24 de abril de 2013 20:29

Todas las respuestas

  • Hola,

    Por que no probas con este codigo:

    ALTER PROCEDURE SpBuscarPerson
    @IdPer nchar (25)
    AS
     SELECT tblPersonasB.ID, tblPersonasB.Pasaporte, tblPersonasB.Nombres, tblPersonasB.Apellidos, tblPersonasB.Nacionalidad, tblPersonasB.FechaNacimiento
        FROM tblPersonasB
        WHERE EXISTS (SELECT *
        FROM tblPasaporte  
        WHERE tblPasaporte.Pasaporte=@IdPer and tblPersonasB.ID=tblPasaporteA.ID)
        


    Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.

    • Marcado como respuesta Roxseni miércoles, 24 de abril de 2013 20:34
    miércoles, 24 de abril de 2013 20:29
  • Hola veo que tu variables @IdPer es el número del pasaporte? o el código de ese pasaporte?


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    miércoles, 24 de abril de 2013 20:31
  • Excelente Carlos Ignacio me funciono a la perfeccion gracias
    miércoles, 24 de abril de 2013 20:34