Desagrupar un registro

08/08/2005 - 13:59 por Ivan Pascual | Informe spam
Hola grupo!
Me exlico...
Tengo un registro en una tabla tal que asi:

IdFormaPago NumeroVen
1007 3

Pero me gustaria poder disponer de lo siguiente:

Ven IdFormaPago
1 1007
2 1007
3 1007

Es como si quisiera desagrupar registros.
La solucion es hacer un cursor hasta 3 y ir numerando... pero no quiero
utilizar cursores ya que consumen muchos recursos.
Alguien sabe de alguna instruccion que me pueda servir para mi proposito??
O es mas, como lo solucionariais?

Agradezco cualquier comentario...
Buenas vacaciones para los que las esten disfrutando...

Saludos.
Ivan Pascual

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
08/08/2005 - 14:51 | Informe spam
Ivan,

Puedes usar una tabla auxiliar de numeros, la cual resulta ser muy util en
cualquier base de datos.

Ejemplo:

select identity(int, 1, 1) as numero
into numero
from sysobjects
go

create unique clustered index ix_u_c_numero_numero on numero(numero asc)
go

select n.numero as ven, IdFormaPago
from t1 inner join numero as n on n.numero <= t1.NumeroVen
go


AMB

"Ivan Pascual" wrote:

Hola grupo!
Me exlico...
Tengo un registro en una tabla tal que asi:

IdFormaPago NumeroVen
1007 3

Pero me gustaria poder disponer de lo siguiente:

Ven IdFormaPago
1 1007
2 1007
3 1007

Es como si quisiera desagrupar registros.
La solucion es hacer un cursor hasta 3 y ir numerando... pero no quiero
utilizar cursores ya que consumen muchos recursos.
Alguien sabe de alguna instruccion que me pueda servir para mi proposito??
O es mas, como lo solucionariais?

Agradezco cualquier comentario...
Buenas vacaciones para los que las esten disfrutando...

Saludos.
Ivan Pascual



Respuesta Responder a este mensaje
#2 Eleazar
08/08/2005 - 18:00 | Informe spam
Otra practica es (a nivel diseño de la tabla) crear un campo donde se guarda
el numero consecutivo del detalle y debe formar parte de la llave primaria
Create Table FormaPago
(IdFormaPago int,
IdNumForma int,
.
"Alejandro Mesa" escribió en el
mensaje news:
Ivan,

Puedes usar una tabla auxiliar de numeros, la cual resulta ser muy util en
cualquier base de datos.

Ejemplo:

select identity(int, 1, 1) as numero
into numero
from sysobjects
go

create unique clustered index ix_u_c_numero_numero on numero(numero asc)
go

select n.numero as ven, IdFormaPago
from t1 inner join numero as n on n.numero <= t1.NumeroVen
go


AMB

"Ivan Pascual" wrote:

> Hola grupo!
> Me exlico...
> Tengo un registro en una tabla tal que asi:
>
> IdFormaPago NumeroVen
> 1007 3
>
> Pero me gustaria poder disponer de lo siguiente:
>
> Ven IdFormaPago
> 1 1007
> 2 1007
> 3 1007
>
> Es como si quisiera desagrupar registros.
> La solucion es hacer un cursor hasta 3 y ir numerando... pero no quiero
> utilizar cursores ya que consumen muchos recursos.
> Alguien sabe de alguna instruccion que me pueda servir para mi


proposito??
> O es mas, como lo solucionariais?
>
> Agradezco cualquier comentario...
> Buenas vacaciones para los que las esten disfrutando...
>
> Saludos.
> Ivan Pascual
>
>
>
Respuesta Responder a este mensaje
#3 Ivan Pascual
09/08/2005 - 09:07 | Informe spam
Muchas gracias Alejandro.
me ha servido de mucho. Lo solucioné haciendo un bucle while con contadores
y demas, pero tu respuesta es mucho mejor a mi solución.
gracias de nuevo.

Ivan Pascual



"Alejandro Mesa" escribió en el
mensaje news:
Ivan,

Puedes usar una tabla auxiliar de numeros, la cual resulta ser muy util en
cualquier base de datos.

Ejemplo:

select identity(int, 1, 1) as numero
into numero
from sysobjects
go

create unique clustered index ix_u_c_numero_numero on numero(numero asc)
go

select n.numero as ven, IdFormaPago
from t1 inner join numero as n on n.numero <= t1.NumeroVen
go


AMB

"Ivan Pascual" wrote:

> Hola grupo!
> Me exlico...
> Tengo un registro en una tabla tal que asi:
>
> IdFormaPago NumeroVen
> 1007 3
>
> Pero me gustaria poder disponer de lo siguiente:
>
> Ven IdFormaPago
> 1 1007
> 2 1007
> 3 1007
>
> Es como si quisiera desagrupar registros.
> La solucion es hacer un cursor hasta 3 y ir numerando... pero no quiero
> utilizar cursores ya que consumen muchos recursos.
> Alguien sabe de alguna instruccion que me pueda servir para mi


proposito??
> O es mas, como lo solucionariais?
>
> Agradezco cualquier comentario...
> Buenas vacaciones para los que las esten disfrutando...
>
> Saludos.
> Ivan Pascual
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida