Subsonculta a la misma tabla [AYUDA]
Publicado por Nicolás Ignacio (21 intervenciones) el 24/11/2015 14:54:51
Hola estimados!!!
Tengo un inconveniente y no logro resolverlo, entiendo el tema de subconsultas, pero no me arroja resultados cuando la realizo a la misma tabla, he visto ejemplos pero no es lo que busco, con inner join , etc.
El tema es que tengo una tabla padronBeneficiarios con campos relacionados a otras tablas como ser provincias, codigoEstado, codParentesco, etc. Entonces busco mostrar en una vista los campos con los datos bien representados, por ejemplo si el código de parentesco es 1, quiero que en vez de mostrar el número 1 al usuario le muestre que es 'titular'. Y así con todo.
La tabla padronBeneficiarios me la provee un organismo del Estado por eso no puedo modificar su estructura, y las tablas auxiliares son las que me proveen los datos para realizar las combinaciones.
Dejo la query como más o menos la tengo armada:
Y eso me devuelve bien los registros, pero lo que me falta es agregar algo como esto:
Como para obtener el apellido y nombre que se encuentra en la misma tabla, que sea igual al cuilCuil del registro que esté comparando. Para mostrar al lado el nombre del titular de la obra social.
Bueno espero que más o menos se haya entendido mi problemática, y obviamente no logro darme cuenta cómo solucionarlo, por eso recurro a ustedes.
Muchas gracias y cualquier respuesta será bienvenida, saludos!!
Tengo un inconveniente y no logro resolverlo, entiendo el tema de subconsultas, pero no me arroja resultados cuando la realizo a la misma tabla, he visto ejemplos pero no es lo que busco, con inner join , etc.
El tema es que tengo una tabla padronBeneficiarios con campos relacionados a otras tablas como ser provincias, codigoEstado, codParentesco, etc. Entonces busco mostrar en una vista los campos con los datos bien representados, por ejemplo si el código de parentesco es 1, quiero que en vez de mostrar el número 1 al usuario le muestre que es 'titular'. Y así con todo.
La tabla padronBeneficiarios me la provee un organismo del Estado por eso no puedo modificar su estructura, y las tablas auxiliares son las que me proveen los datos para realizar las combinaciones.
Dejo la query como más o menos la tengo armada:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT a.id, a.codObraSocial, a.cuitEmpleador,
(SELECT k.apenomDetail FROM detailDdjjPadron k WHERE k.cuitDetail = a.cuitEmpleador) as 'razonSocial',
a.cuilTitular,
(SELECT b.descripcion FROM codParentescoSSS b WHERE b.id = a.codParentesco) as 'parentesco',
a.cuilCuil,
(SELECT c.tipoDocumento FROM tipoDocSSS c WHERE c.id = a.tipoDocumento) as 'tipoDocumento',
a.numeroDocumento, a.apellidoNombre, a.sexo,
(SELECT d.descripcion FROM estadoCivilSSS d WHERE d.id = a.estadoCivil) as 'estadoCivil',
a.fechaNacimiento,
(SELECT e.descripcion FROM nacionalidadSSS e WHERE e.id = a.nacionalidad) as 'nacionalidad',
a.calle, a.numeroPuerta, a.piso, a.departamento, a.localidad, a.codigoPostal,
(SELECT f.nombre FROM provinciasSSS f WHERE f.id = a.codProvincia) as 'provincia',
(SELECT g.descripcion FROM tipoDomicilioSSS g WHERE g.id = a.tipoDomicilio) as 'tipoDomicilio',
a.telefono, a.situacionRevista,
(SELECT h.descripcion FROM incapacidadSSS h WHERE h.id = a.incapacidad) as 'incapacidad',
(SELECT i.descripcion FROM tipoBenefSSS i WHERE i.id = a.tipoBeneficiario) as 'tipoBeneficiario',
a.fechaAltaOS, a.fechaCierrePres, a.codMovimiento,
(SELECT j.descripcion FROM estado j WHERE j.idEstado = a.idEstado) as 'estado',
a.usuarioAlta, a.fechaAlta, a.usuarioModificacion, a.fechaModificacion FROM padronBeneficiarios a;
Y eso me devuelve bien los registros, pero lo que me falta es agregar algo como esto:
1
(SELECT q.apellidoNombre FROM padronBeneficiarios q WHERE q.cuilTitular = a.cuilCuil) as 'titular'
Como para obtener el apellido y nombre que se encuentra en la misma tabla, que sea igual al cuilCuil del registro que esté comparando. Para mostrar al lado el nombre del titular de la obra social.
Bueno espero que más o menos se haya entendido mi problemática, y obviamente no logro darme cuenta cómo solucionarlo, por eso recurro a ustedes.
Muchas gracias y cualquier respuesta será bienvenida, saludos!!
Valora esta pregunta
0