I have seen this issue in SF, but me being a noob I just can\'t get my fried brain around them. So please forgive me if this feels like repetition.
My Sample Table>
Here is a rough demo about cursor, may be it's helpful.
CREATE TABLE #t
(
ID INT IDENTITY,
Supplier INT,
QTY INT
);
TRUNCATE TABLE #t;
INSERT INTO #t (Supplier, QTY)
VALUES (1, 2),
(1, 2),
(2, 5),
(3, 2),
(1, 3);
DECLARE @sum AS INT;
DECLARE @qty AS INT;
DECLARE @totalRows AS INT;
DECLARE curSelectQTY CURSOR
FOR SELECT QTY
FROM #t
ORDER BY QTY DESC;
OPEN curSelectQTY;
SET @sum = 0;
SET @totalRows = 0;
FETCH NEXT FROM curSelectQTY INTO @qty;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sum = @sum + @qty;
SET @totalRows = @totalRows + 1;
IF @sum >= 5
BREAK;
END
SELECT TOP (@totalRows) *
FROM #t
ORDER BY QTY DESC;
CLOSE curSelectQTY;
DEALLOCATE curSelectQTY;