Вот как вы можете это сделать. Это пример с другой таблицей. Это создает все. Вы можете просто запустить его и посмотреть, как он работает:
DROP TABLE CURSOR_EXAMPLE
GO
CREATE TABLE CURSOR_EXAMPLE
(TEXT VARCHAR(8),VALUE BIGINT)
GO
INSERT INTO CURSOR_EXAMPLE
VALUES ('Jan',1)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Jan',2)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Feb',1)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Feb',2)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Mar',1)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Mar',2)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Apr',1)
INSERT INTO CURSOR_EXAMPLE
VALUES ('Apr',2)
GO
DECLARE @var_Current_TEXT VARCHAR(8);
DECLARE @text VARCHAR(8);
DECLARE @value BIGINT;
CREATE TABLE #TempResult
(TEXT VARCHAR(8),VALUE BIGINT)
DECLARE cu_CURSOR_EXAMPLE CURSOR FOR
SELECT
TEXT
,VALUE
FROM CURSOR_EXAMPLE
OPEN cu_CURSOR_EXAMPLE
FETCH NEXT FROM cu_CURSOR_EXAMPLE INTO @text, @value
SET @var_Current_TEXT = ''
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@var_Current_TEXT <> @text)
INSERT INTO #TempResult
VALUES (@text, @value);
IF (@var_Current_TEXT = @text)
INSERT INTO #TempResult
VALUES ('', @value);
SET @var_Current_TEXT = @text
FETCH NEXT FROM cu_CURSOR_EXAMPLE INTO @text, @value
END
CLOSE cu_CURSOR_EXAMPLE
DEALLOCATE cu_CURSOR_EXAMPLE
SELECT * FROM #TempResult
DROP TABLE #TempResult