Foros del Web » Programando para Internet » ASP Clásico »

¿Agrupacion?

Estas en el tema de ¿Agrupacion? en el foro de ASP Clásico en Foros del Web. Buenas tardes a todos los amigos del Foro espero y todos se encuentren de maravilla. Tengo una duda, ¿Es posible agrupar en una pagina ASP ...
  #1 (permalink)  
Antiguo 28/03/2009, 14:54
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 22 años, 5 meses
Puntos: 1
Sonrisa ¿Agrupacion?

Buenas tardes a todos los amigos del Foro espero y todos se encuentren de maravilla.

Tengo una duda, ¿Es posible agrupar en una pagina ASP los datos de 2 tablas?.
¿Por que la pregunta?
Se me ocurrio hacer una pagina donde pueda mostras los datos de 2 tablas distintas sin embargo al mostrarlo me sale un monto de información duplicada, arme asi mis tablas:
Tabla1: IDT (Id de la tabla1) NOM(Nombre de un segmento)
Tabla2: IDTT (id de la tabla2) IDT (id de la tabla1) INFO (Datos del segmento)

Entonces lo que quiero hacer es que me muestre la información asi:

MI SEGMENTO1
Informacion1.1
Informacion1.2
Informacion1.3

Mi SEGMENTO2
Informacion2.1
Informacion2.2
Informacion2.3

Por decir algo, sin embargo me sale asi:

MI SEGMENTO1
Informacion1.1
MI SEGMENTO1
Informacion1.2
MI SEGMENTO1
Informacion1.3
MI SEGMENTO1
Informacion2.1
MI SEGMENTO1
Informacion2.2
MI SEGMENTO1
Informacion2.3
Mi SEGMENTO2
Informacion1.1
Mi SEGMENTO2
Informacion1.2
Mi SEGMENTO2
Informacion1.3
Mi SEGMENTO2
Informacion2.1
Mi SEGMENTO2
Informacion2.2
Mi SEGMENTO2
Informacion2.3

¿Existe alguna forma de hacer esto como quiero o no es posible?

De antemano muchas gracias por su apoyo invaluable.

Saludos cordiales.
__________________
Guapo Ben
Servidor y Amigo :adios:
  #2 (permalink)  
Antiguo 28/03/2009, 16:07
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: ¿Agrupacion?

mm.....
esto seria en palabras algo asi...

por cada consulta que hagas para la tabla 1, realizaras una subconsulta en la tabla2...



se podria utilizar "getrows" en la subconsulta, para no tener que estar cerrando la consulta en cada vuelta

podrias poner la estructura de tu primera consulta...
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 29/03/2009, 09:33
Avatar de 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
  #4 (permalink)  
Antiguo 13/04/2009, 14:02
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: ¿Agrupacion?

Shiryu y Angelus muchas gracias por su apoyo.
No creo que sea sobre la base de datos ya que pues estan ligadas ambas tablas, creo que el problema es la parte de ASP que no se como mostrarlo, sin embargo voy a intentar hacerlo como indica Shiryu. por otro lado una disculpa por contestar hasta ahora pero andaba sin internet .

GRACIAS.
__________________
Guapo Ben
Servidor y Amigo :adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:28.