Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/03/2009, 09:33
Avatar de a n g e l u s
a n g e l u s
 
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