Alright. I may be going around the barn to get to the horse, (or however the saying goes), but this seems to work. Hopefully, someone will figure out a more elegant and streamline method.
CREATE TABLE #u_external_requests( acct_number int,
idx int,
stage int)
INSERT INTO #u_external_requests VALUES( 1000000179, 1, 7)
INSERT INTO #u_external_requests VALUES( 1000000179, 2, 1)
INSERT INTO #u_external_requests VALUES( 1000000192, 1, 7)
INSERT INTO #u_external_requests VALUES( 1000000192, 4, 8)
INSERT INTO #u_external_requests VALUES( 1000000192, 5, 1)
INSERT INTO #u_external_requests VALUES( 1000000192, 6, 8)
INSERT INTO #u_external_requests VALUES( 1000000205, 1, 8)
INSERT INTO #u_external_requests VALUES( 1000000205, 5, 7)
INSERT INTO #u_external_requests VALUES( 1000000689, 1, 8)
INSERT INTO #u_external_requests VALUES( 1000000689, 3, 7)
INSERT INTO #u_external_requests VALUES( 1000000689, 4, 8)
INSERT INTO #u_external_requests VALUES( 1000000705, 1, 7) -- Test values for only one entry....
CREATE TABLE #OutPut( acct_number int,
idx int,
stage int)
DECLARE @CurrentAcctNum int,
@MaxAcctNum int
SELECT @CurrentAcctNum = (SELECT MIN( acct_number) FROM #u_external_requests)
SELECT @MaxAcctNum = (SELECT MAX( acct_number) FROM #u_external_requests)
WHILE @CurrentAcctNum <= @MaxAcctNum
BEGIN
INSERT INTO #OutPut
SELECT TOP 2 acct_number, idx, stage
FROM #u_external_requests
WHERE acct_number = @CurrentAcctNum
SELECT @CurrentAcctNum = (SELECT MIN( acct_number)
FROM #u_external_requests
WHERE acct_number > @CurrentAcctNum)
END
SELECT acct_number, idx, stage
FROM #OutPut
DROP TABLE #OutPut
DROP TABLE #u_external_requests
I wasn't born stupid - I had to study.