Ciclo en consulta

20/02/2006 - 16:32 por Raul Romero | Informe spam
Buenos dias ...

Por favor alguien me podria decir como repetir un unico registro de una
tabla una X cantidad de veces usando solo un select.

Esto es lo que tendria ...

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))

insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111 111
1111')

Y esto es lo que desearia obtener a travez de la consulta suponiendo que X 4. (1<X<20)

1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111

Muchas gracias por cualquier sugerencia,

Saludos,
Raul

Preguntas similare

Leer las respuestas

#1 Noldis Chumacero
20/02/2006 - 17:00 | Informe spam
Raul,

Utilizando tu mismo código:

a) Utilizando tu misma tabla temporal

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))


DECLARE @Cantidad INT
DECLARE @Inicio INT
DECLARE @Fin INT
SET @Inicio = 1
SET @Fin = 20
SET @Cantidad = @Inicio
WHILE @Cantidad <= @Fin
BEGIN
SET NOCOUNT ON
insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111
111 1111')
SET @Cantidad = @Cantidad + 1
SET NOCOUNT OFF
END

SELECT * FROM #Temporal

drop table #Temporal

b) Utilizando varios "SELECT"

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))

insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111 111
1111')

DECLARE @Cantidad INT
DECLARE @Inicio INT
DECLARE @Fin INT
SET @Inicio = 1
SET @Fin = 20
SET @Cantidad = @Inicio
WHILE @Cantidad <= @Fin
BEGIN
SET NOCOUNT ON
SELECT * FROM #Temporal
SET @Cantidad = @Cantidad + 1
SET NOCOUNT OFF
END



drop table #Temporal

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"Raul Romero" escribió en el mensaje
news:

Buenos dias ...

Por favor alguien me podria decir como repetir un unico registro de una
tabla una X cantidad de veces usando solo un select.

Esto es lo que tendria ...

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))

insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111 111
1111')

Y esto es lo que desearia obtener a travez de la consulta suponiendo que X
> 4. (1<X<20)

1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111
1 Test nombre Test Direccion 111 111 1111

Muchas gracias por cualquier sugerencia,

Saludos,
Raul



Respuesta Responder a este mensaje
#2 Raul Romero
20/02/2006 - 17:04 | Informe spam
Buenos dias Noldis ...

Muchas gracias por tu pronta y atenta respuesta ... no sabes si existe
alguna manera
de realizar lo anteriormente expuesto utilizando solo una sentencia SQL ?
(SQL estandard
que tambien pueda ser utilizado, en Access por Ej.)

Gracias nuevamente,

Saludos,
Raul

"Noldis Chumacero" wrote in message
news:

Raul,

Utilizando tu mismo código:

a) Utilizando tu misma tabla temporal

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))


DECLARE @Cantidad INT
DECLARE @Inicio INT
DECLARE @Fin INT
SET @Inicio = 1
SET @Fin = 20
SET @Cantidad = @Inicio
WHILE @Cantidad <= @Fin
BEGIN
SET NOCOUNT ON
insert into #Temporal values (1, 'Test nombre', 'Test Direccion',


'111
111 1111')
SET @Cantidad = @Cantidad + 1
SET NOCOUNT OFF
END

SELECT * FROM #Temporal

drop table #Temporal

b) Utilizando varios "SELECT"

create table #Temporal
(id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))

insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111 111
1111')

DECLARE @Cantidad INT
DECLARE @Inicio INT
DECLARE @Fin INT
SET @Inicio = 1
SET @Fin = 20
SET @Cantidad = @Inicio
WHILE @Cantidad <= @Fin
BEGIN
SET NOCOUNT ON
SELECT * FROM #Temporal
SET @Cantidad = @Cantidad + 1
SET NOCOUNT OFF
END



drop table #Temporal

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"Raul Romero" escribió en el mensaje
news:
>
> Buenos dias ...
>
> Por favor alguien me podria decir como repetir un unico registro de una
> tabla una X cantidad de veces usando solo un select.
>
> Esto es lo que tendria ...
>
> create table #Temporal
> (id int, nombre varchar(50), Direccion varchar(50), Telefono


Varchar(25))
>
> insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111


111
> 1111')
>
> Y esto es lo que desearia obtener a travez de la consulta suponiendo que


X
> > > 4. (1<X<20)
>
> 1 Test nombre Test Direccion 111 111 1111
> 1 Test nombre Test Direccion 111 111 1111
> 1 Test nombre Test Direccion 111 111 1111
> 1 Test nombre Test Direccion 111 111 1111
>
> Muchas gracias por cualquier sugerencia,
>
> Saludos,
> Raul
>
>
>



Respuesta Responder a este mensaje
#3 Alejandro Mesa
20/02/2006 - 18:21 | Informe spam
Raul,

Puedes crea una tabla derivada o una tabla permanente de numeros y haces un
join para el numero de veces que deseas.

Ejemplo:

1 -

select a.*
from tu_tabla as a inner join (select 1 as c1 union all select 2 union all
select 3 union all select 4) as b on b.c1 < 5

2 -

select identity(int, 1, 1) as numero
into numero
from sysobjects as a cross join sysobjects as b

select a.*
from tu_tabla inner join numero as b
on b.numero < 5



AMB

"Raul Romero" wrote:

Buenos dias Noldis ...

Muchas gracias por tu pronta y atenta respuesta ... no sabes si existe
alguna manera
de realizar lo anteriormente expuesto utilizando solo una sentencia SQL ?
(SQL estandard
que tambien pueda ser utilizado, en Access por Ej.)

Gracias nuevamente,

Saludos,
Raul

"Noldis Chumacero" wrote in message
news:
>
> Raul,
>
> Utilizando tu mismo código:
>
> a) Utilizando tu misma tabla temporal
>
> create table #Temporal
> (id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))
>
>
> DECLARE @Cantidad INT
> DECLARE @Inicio INT
> DECLARE @Fin INT
> SET @Inicio = 1
> SET @Fin = 20
> SET @Cantidad = @Inicio
> WHILE @Cantidad <= @Fin
> BEGIN
> SET NOCOUNT ON
> insert into #Temporal values (1, 'Test nombre', 'Test Direccion',
'111
> 111 1111')
> SET @Cantidad = @Cantidad + 1
> SET NOCOUNT OFF
> END
>
> SELECT * FROM #Temporal
>
> drop table #Temporal
>
> b) Utilizando varios "SELECT"
>
> create table #Temporal
> (id int, nombre varchar(50), Direccion varchar(50), Telefono Varchar(25))
>
> insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111 111
> 1111')
>
> DECLARE @Cantidad INT
> DECLARE @Inicio INT
> DECLARE @Fin INT
> SET @Inicio = 1
> SET @Fin = 20
> SET @Cantidad = @Inicio
> WHILE @Cantidad <= @Fin
> BEGIN
> SET NOCOUNT ON
> SELECT * FROM #Temporal
> SET @Cantidad = @Cantidad + 1
> SET NOCOUNT OFF
> END
>
>
>
> drop table #Temporal
>
> Ing. Noldis Chumacero Chávez
> Departamento de Sistemas
> AeroSur S.A.
> Santa Cruz de la Sierra, Bolivia
> Telf. 3364446(236) 77074919
> "Raul Romero" escribió en el mensaje
> news:
> >
> > Buenos dias ...
> >
> > Por favor alguien me podria decir como repetir un unico registro de una
> > tabla una X cantidad de veces usando solo un select.
> >
> > Esto es lo que tendria ...
> >
> > create table #Temporal
> > (id int, nombre varchar(50), Direccion varchar(50), Telefono
Varchar(25))
> >
> > insert into #Temporal values (1, 'Test nombre', 'Test Direccion', '111
111
> > 1111')
> >
> > Y esto es lo que desearia obtener a travez de la consulta suponiendo que
X
> > > > > 4. (1<X<20)
> >
> > 1 Test nombre Test Direccion 111 111 1111
> > 1 Test nombre Test Direccion 111 111 1111
> > 1 Test nombre Test Direccion 111 111 1111
> > 1 Test nombre Test Direccion 111 111 1111
> >
> > Muchas gracias por cualquier sugerencia,
> >
> > Saludos,
> > Raul
> >
> >
> >
>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida