SQL Server - Consulta

   
Vista:

Consulta

Publicado por sole (34 intervenciones) el 07/07/2010 12:12:53
Hola como estan...

Con esta consulta sql
select producto, cantidad from productos

obtengo los resultados
pruducto, cantidad
cuadernos, 5
lapices, 7
mesas, 2
cpu, 3

como puedo hacer para obetener asi el resultado
producto
cuadernos
cuadernos
cuadernos
cuadernos
cuadernos
lapices
lapices
lapices
lapices
lapices
lapices
lapices
mesas
mesas
cpu
cpu
cpu

osea obetener tantos registros dependiendo de la cantidad de cada uno.

Si pueden darme una manito desde ya agradesco..
saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta

Publicado por JAMS (75 intervenciones) el 07/07/2010 17:10:08
prueba con esto en tu select

select producto,cantidad from productos order by producto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por sole (34 intervenciones) el 07/07/2010 23:22:26
Hola JAMS

Con el order by no funcionara, no se si me esplique bien:

Tengo una tabla con los valores :

pruducto, cantidad
cuadernos, 5
lapices, 7
mesas, 2
cpu, 3

LOS CAMPOS DE MI TABLA SON PRODUCTOS Y CANTIDAD
Necesito tener registro de cada producto segun la cantidad.

Como esplicaba anteriormente si tengo en cantidad 3 de cpu, nesecito visualizar tres registros de ese producto:
ej.
cpu
cpu
cpu

y asi sucesibamente con los demas...

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Consulta

Publicado por Isaias (3182 intervenciones) el 08/07/2010 00:05:08
¿Probaste la solución?, digo, aunque no soy "amante" de los cursores, creo que debe funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por sole (34 intervenciones) el 08/07/2010 13:32:20
Hola...

No lo puedo solucionar con cursores.....

loo estube probando de esta forma

SELECT REPEAT(producto, cantidad) FROM productos

pero tampoco encuantro la solucion.

saluds
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Consulta

Publicado por roger (173 intervenciones) el 08/07/2010 18:59:01
si no lo puedes solucionar con cursores consulta sobre CTE (common table expressions) de sql server 2005 en adelante, para hacer consultas recursivas, porque lo que es seguro es que con un select normal no lo puedes hacer

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Consulta

Publicado por roger (173 intervenciones) el 09/07/2010 23:30:13
con CTE's se podria hacer asi

WITH productosCTE AS (
-- punto de entrada
SELECT prod
, 0 as quantity
FROM dbo.prods
UNION ALL
-- elemento de recursión
SELECT t.prod
, (quantity +1) as quant
FROM dbo.prods
AS t
JOIN productosCTE AS M
ON t.prod = M.prod
WHERE quantity +1<t.cantidad
)
SELECT * FROM productosCTE
order by prod

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Consulta

Publicado por roger (173 intervenciones) el 07/07/2010 19:31:46
haz utilizado cursores???, la forma que se me ocurre es esa

declare @cantidad int
declare @prod varchar(100)
declare @contador int
SET @contador = 0
declare cursorProductos cursor
for select prod,cantidad from prods

open cursorProductos
fetch next from cursorProductos into @prod,@cantidad
while(@@fetch_status=0)
begin
while(@contador<@cantidad)
begin
print @prod
SET @contador=@contador+1
end
SET @contador = 0
fetch next from cursorProductos into @prod,@cantidad
end
close cursorProductos
deallocate cursorProductos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar