eso podria ser algo asi
Código SQL:
Ver originalCREATE TABLE #temp
(
nombre VARCHAR(20),
cantidad INT
)
INSERT INTO #temp VALUES ('yo',50)
INSERT INTO #temp VALUES ('yo',50)
INSERT INTO #temp VALUES ('tu',100)
INSERT INTO #temp VALUES ('el',25)
INSERT INTO #temp VALUES ('el',25)
INSERT INTO #temp VALUES ('el',25)
INSERT INTO #temp VALUES ('el',25)
INSERT INTO #temp VALUES ('el',25)
CREATE TABLE #resultado
(
nombre VARCHAR(20),
cantidad INT
)
DECLARE @x INT
DECLARE @suma INT
DECLARE @cantidad INT
DECLARE @parametro VARCHAR(20)
SET @x=1
SET @suma=0
SET @parametro='yo'
SELECT ROW_NUMBER() OVER(partition BY nombre ORDER BY nombre) AS rn, nombre,cantidad INTO #temp2 FROM #temp WHERE nombre=@parametro
while(@x<=(SELECT COUNT(*) FROM #temp2))
BEGIN
SELECT @cantidad=cantidad FROM #temp2 WHERE rn=@x
SET @suma=@suma+@cantidad
IF @suma<=100
INSERT INTO #resultado SELECT nombre,cantidad FROM #temp2 WHERE rn=@x
SET @x=@x+1
END
SELECT * FROM #resultado
DELETE FROM #resultado
DROP TABLE #temp2
saludos!