
29/03/2009, 09:33
|
 | | | Fecha de Ingreso: enero-2006 Ubicación: Chile
Mensajes: 237
Antigüedad: 19 años, 3 meses Puntos: 1 | |
Respuesta: ¿Agrupacion? Hola como stan,
antes que todo felicitaciones Shiryu_Libra ya eres colaborar (no sabia porque estuve literalmente off line harto tiempo).
Con respecto a la pregunta de nuestro amigo GUAPOBEN, su consulta corresponde más a base de datos, por que después de muchos cafes y horas de alucinaciones, pude resolver su pregunta.
Respuesta:
la solución tienes que hacerla con un procedimiento almacenado en tu bd.
¿Comó se hace?
CREATE PROCEDURE....
BEGIN
/*- Primero creas la tabla 1 agregando dos campos
orden = idt que encabeza el segmento.
reorden = si creaste primero un items y luego un segmente el items tendria menor id que el segmento y no se ordenaria.
-*/
drop temporary table if exists primera_tabla;
create temporary table primera_tabla
select IDT as orden, (0) as reorden, IDT as id, NOM as detalle from Tabla1 order by idt;
/*- Segundo creas la tabla 2 agregando dos campos (aqui es donde empieza la magia)
orden = idt que encabeza el segmento, es la forent key que te enlaza las dos tablas.
reorden = si creaste primero un items y luego un segmento, el items tendria menor id que el segmento y no se ordenaria.
-*/
drop temporary table if exists segunda_tabla;
create temporary table segunda_tabla
select IDT as orden, (1) as reorden, IDTT as id, INFO as detalle from Tabla2 order by idtt;
/*-
Ahora tienes dos tablas con igual cantidad de campos y tienes que unirlas
-*/
DROP TEMPORARY TABLE IF EXISTS union_primera_con_segunda_tabla;
CREATE TEMPORARY TABLE union_primera_con_segunda_tabla
SELECT * FROM primera_tabla
UNION ALL
SELECT * FROM segunda_tabla;
/*-
Una vez unidas, tienes que ordenar y aqui es donde tus problemas empiezan a solucionarse, si te fijas el formato de las tablas te quedo de esta manera:
para la tabla primera_tabla:
1 0 1 titulosegmento1
2 0 2 titulosegmento2
3 0 3 titulosegmento3
y para segunda_tabla:
1 1 1 titulo_item1.1
1 1 2 titulo_item1.2
3 1 3 titulo_item3.1
2 1 5 titulo_item2.1
al unirlos y ordenarlos, solo tienes que mostrarlos (me salio verso sin mayor esfuerzo).
1 0 1 titulosegmento1
1 1 1 titulo_item1.1
1 1 2 titulo_item1.2
2 0 2 titulosegmento2
2 1 5 titulo_item2.1
3 0 3 titulosegmento3
3 1 3 titulo_item3.1
-*/
select * from union_primera_con_segunda_tabla ORDER BY orden, reorden, id;
/* en honor a la memoria de las neuronas de Angelus*/
END;
Eso es todo, ahora yo creo que vas a tener que ir a buscar la respuesta a la parte de base de datos, porque no tiene mucho que ver con ASP, pero es un problema que he visto alguna vez por aca en la parte de ASP.
__________________ Atte,
A n g e l u s
Concepción - Chile más vale respuestas bien pensadas, que 7000 post |