Fer, 

Yo no veo una manera fácil de hacerlo con un simple query de SQL. En dos 
ocasiones en mi experiencia con bases de datos he tenido yo que hacer algo 
similar a una explosión de registros, y en ambas mi solución ha sido una tabla 
temporal en memoria de Oracle (GLOBAL TEMPORARY TABLE). La explosión 
propiamente dicha la hago con una función que mando llamar en mi código justo 
cuando necesito los datos 'explotados'. 

Estas tablas son muy útiles porque solo existen en memoria (por lo tanto son 
rapidísimas en todas sus operaciones de inserción, borrado y modificación) y el 
contenido se destruye tan pronto como abandonas la sesión. Si estás usando 
Oracle, te puedo mandar la solución tal y como yo he resuelto este problema. 

/luis

--------------------------------------------------------------------

Luis Miguel Arteaga Mejía         - Huntsville, AL, USA

http://www.arteaga.com.mx/paginas/contacto

--------------------------------------------------------------------

--- On Mon, 7/26/10, FER <ferm...@gmail.com> wrote:

From: FER <ferm...@gmail.com>
Subject: Re: [GLO] [OT] Explosion de registros
To: glo@glo.org.mx
Date: Monday, July 26, 2010, 4:38 PM

nadie?


no me dejen morir soooloooo!!! jajajajajajjajaja


chale, sabia que era un caso caooon

2010/7/22 FER <ferm...@gmail.com>

> aaaaaaandale ... alguna idea?
>
>
> hasta el momento han venido varias ideas aqui entre los compas que traemos
> esta bronka:
>
>
> 1) usar un cursor o un while:
> PROS: te quitas de broncas
> CONTRAS: los cursores son LEEEEEEENTOOOOOS ademas que esto es precisamente
> para deshacerse de unos cursores en un SP
>
> 2) usar withs anidados
> PROS: adios cursores
> CONTRAS: tiene un maximo de 32,000 la profundidad de la recursividad, cosa
> de entenderse, la pila no es infinita
>
> 3)tener una tabla auxiliar (hasta el momento la que mas me convence)
> esta tabla tendria unicamente una columna auto incremental que vaya del 1
> al 4'000,000 (en 5 años el numero mas grande registrado ha sido 2'000,000) y
> usar un inner join con un <=
>
>
> hasta el momento, todas esas son independientes del RDBMS... pero si
> alguien tiene una solucion, aunque esta dependa del RDBMS... venga...
>
>
> 2010/7/22 Argel Arias <levh...@gmail.com>
>
> Creo que lo entendiste alreves, no quiere que si tiene cinco "ABC", se
>> junten y muestren como "ABC | 5", si no que de tener "ABC | 5", se
>> generen 5 filas ABC
>>
>> 2010/7/22 Luis Gerardo Muro Ramos <vier...@xmarts.com.mx>:
>> > Este tipo de cosas se hacen con funciones de agregación, depende de el
>> motor
>> > de db que uses :D
>> >
>> > Saludos
>> >
>> > 2010/7/22 FER <ferm...@gmail.com>
>> >
>> >> Ahi disculparan el off-topic pero no se a quien mas recurrir...
>> >>
>> >>
>> >>
>> >> pongamos de ejemplo la siguiente tabla:
>> >>
>> >> +-----+----+
>> >> |NoPte|Cant|
>> >> +-----+----+
>> >> |Abc  |3   |
>> >> +-----+----+
>> >> |Def  |2   |
>> >> +-----+----+
>> >>
>> >>
>> >> A alguien se le ocurre un query que me traiga esto(no me imoprta si
>> trae
>> >> mas
>> >> columnas)?
>> >>
>> >> +-----+
>> >> |NoPte|
>> >> +-----+
>> >> |Abc  |
>> >> +-----+
>> >> |Abc  |
>> >> +-----+
>> >> |Abc  |
>> >> +-----+
>> >> |Def  |
>> >> +-----+
>> >> |Def  |
>> >> +-----+
>> >>
>> >>
>> >> Saludos!
>> >>
>> >> --
>> >> Fernando Legorreta
>> >> Programmer Analyst
>> >> Mobile: +(521)3314103136
>> >>
>> >
>> >
>> >
>> > --
>> > Luis Gerado Muro Ramos
>> > Director de Proyectos
>> > Tel:     +52 (55) 47 77 3120
>> >           +52 (33) 47 77 0110
>> >           +52 (81) 12 47 6120
>> >          01 800  087 2260
>> >  Cel: +52 (55) 19507875
>> > luis.m...@xmarts.com.mx
>> >
>>
>>
>>
>> --
>> "La Libertad viene en paquetes pequeños, generalmente TCP/IP"
>> Armando Argel Arias Castañeda
>> levh...@gmail.com
>> http://blog.levhita.net
>> http://twitter.com/levhita
>> http://facebook.com/levhita
>> http://levhita.deviantart.com
>>
>
>
>
> --
> Fernando Legorreta
> Programmer Analyst
> Mobile: +(521)3314103136
>
>


-- 
Fernando Legorreta
Programmer Analyst
Mobile: +(521)3314103136



      

Responder a