Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consultas Maestro Detalle (https://www.clubdelphi.com/foros/showthread.php?t=89685)

CHRISTIANHAZ77 16-01-2016 00:07:18

Consultas Maestro Detalle
 
Hola, estoy lidiando con una consulta y no logro sacarla. tengo una tabla FILIATORIOS, con sus campos referidos a la filiacion de personas.
Por otro lado tengo la tabla señas particulares,SEÑAS PARTICULARES, IdFIliatorio, Seña, Ubicacion.
una persona puede tener varios registros en la tabla señas particulares, la consulta por ejemplo en la condicion debo traer los registros que tengan

(seña1 en ubicacion1) y (seña2 en ubicacion2) u mas criterios.

FILIATORIOS
ID 1
NOMBRE JUAN

SEÑAS PARTICULARES
IDFILIATORIO 1
SEÑA 1
UBICACION 2


IDFILIATORIO 1
SEÑA 5
UBICACION 4


Código SQL [-]
select 
    filiatorios.apellidos,
    filiatorios.nombres,
    filiatorio_senas_part.idsena,
    filiatorio_senas_part.idubicacion
from filiatorios
   inner join filiatorio_senas_part on (filiatorios.idfiliatorios = filiatorio_senas_part.idfiliatorio)

   where filiatorio_senas_part.idsena = :sena1   and  filiatorio_senas_part.idubicacion = :ubicacion1

en ese ejemplo funcionaria cuando solo uso una sola condicion, pero si quiero agregarle otra es cuando no logro resolver.
espero me haya podido explicar, desde ya gracias por su tiempo.

Osorio 18-01-2016 16:33:32

Dos dias y sin respuesta es una señal de que no has planteado bien tu pregunta. Por favor replanteala y seguro mas de uno hará sus aportes.

Saludos.

CHRISTIANHAZ77 18-01-2016 16:51:14

gracias Osorio, ahi intento nuevamente.

Tabla Filiatorios
Id 1
Nombre Juan


Id 2
Nombre Pepe
-------------------------------------------
Tabla señas
Id1
IdFiliatorio 1
Seña marca nacimiento
Ubicación espalda

Id2
Idfiliatorio 1
Seña tatuaje sol
Ubicación mano derecha

Id3
Idfiliatorio 2
Seña tatuaje sol
Ubicación mano derecha

Quiero hacer la consulta donde coloque dos o mas condiciones. Por ejemplo preguntar
Quien tiene tatuaje sol en mano derecha y marca nacimiento en espalda, para que solo me devuelva el que cumpla esas dos. Estoy leyendo algo y puede que los where deberian ser conteniendo select? Cada where lleva los dos campos si o si (seña y ubicación)
Gracias.

Osorio 18-01-2016 17:50:47

Que tal algo asi:


Código SQL [-]
select 
    filiatorios.apellidos,
    filiatorios.nombres,
    filiatorio_senas_part.idsena,
    filiatorio_senas_part.idubicacion
from filiatorios
   inner join filiatorio_senas_part on (filiatorios.idfiliatorios = filiatorio_senas_part.idfiliatorio)

   where filiatorio_senas_part.idsena = :sena1   and  filiatorio_senas_part.idubicacion = :ubicacion1


union


select 
    filiatorios.apellidos,
    filiatorios.nombres,
    filiatorio_senas_part.idsena,
    filiatorio_senas_part.idubicacion
from filiatorios
   inner join filiatorio_senas_part on (filiatorios.idfiliatorios = filiatorio_senas_part.idfiliatorio)

   where filiatorio_senas_part.idsena = :sena2   and  filiatorio_senas_part.idubicacion = :ubicacion2

Tambien puedes hace un CASE dentro del WHERE pero no tengo ningun motor SQL a la mano para probar. Igual hay buena literatura al respecto. busca WHERE CASE en google y veras.

Saludos.

CHRISTIANHAZ77 18-01-2016 19:09:54

Muchas gracias osorio, al ser union me trae el resultado con tal que cumpla una sola condicion. Pero ahora ya se por donde buscar la vuelta. Muchas gracias!!


La franja horaria es GMT +2. Ahora son las 02:58:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi