MySQL Forums
Forum List  »  Spanish

Resultado crean columnas de encabezados repetidos
Posted by: bibincito Briceno
Date: April 03, 2014 04:52PM

Hola.

Tengo Estas Dos tablas
CREATE TABLE `persona` (
`idPersona` varchar(30) NOT NULL,
`Nombre` varchar(45) DEFAULT NULL,
`ApPaterno` varchar(45) DEFAULT NULL,
`ApMaterno` varchar(45) DEFAULT NULL,
`Carnet` varchar(15) DEFAULT NULL,
PRIMARY KEY (`idPersona`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `atributopersona` (
`Titulo` varchar(30) DEFAULT NULL,
`Valor` varchar(30) DEFAULT NULL,
`idPersona` varchar(30) NOT NULL,
KEY `fk_AtributoPersona_Persona1_idx` (`idPersona`),
CONSTRAINT `fk_AtributoPersona_Persona1` FOREIGN KEY (`idPersona`) REFERENCES `persona` (`idPersona`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



----------------
Si llenamos correctamente al menos 2 campos del mismo atributo para 4 diferentes personas... Digamos

idPersona|Nombre ...
1| Alguien
2| Alguien mas

Y Atributos

Titulo|Valor| idPersona
Tel|455454|1
Tel|665652|2

Resulta Que hice una consulta medio extraña, pero resulto al final, Ahora el problema es que los encabezados se repiten para cada Row persona.

Aqui el Script.

SET @sql = NULL;
SELECT
GROUP_CONCAT( CONCAT(
'MAX(IF(pa.valor = ''',
Valor,
''', pa.valor, NULL)) AS ',
Titulo
)
) INTO @sql
FROM atributopersona;

SET @sql = CONCAT('SELECT p.idPersona
, p.Nombre
, p.ApPaterno, p.ApMaterno, p.Carnet,
', @sql, '
FROM persona p
LEFT JOIN atributopersona AS pa
ON p.idPersona = pa.idPersona
GROUP BY p.idPersona');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;



Alguien por favor me puede dar una solucion para que no se creen las columnas para cada registro ??.

GRACIAS !!!!

Las cosas difíciles traen premio ...

Luis Delfin Briceño Gordy
Un loco de por ahi.
mail: bibincito@gmail.com

Options: ReplyQuote


Subject
Views
Written By
Posted
Resultado crean columnas de encabezados repetidos
2166
April 03, 2014 04:52PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.