Вот мой текущий код:
--DROP TABLE #DataSet
CREATE TABLE #DataSet (
[Client Number] VARCHAR(6)
,[Account Caption] VARCHAR(1)
,[From] NUMERIC(18,8)
,[To] NUMERIC(18,8)
,[ADDL UNIT RATE] NUMERIC(18,8)
,[ADDL UNIT BASE] NUMERIC(18,8)
)
INSERT INTO #DataSet
SELECT '369229','0',0.01000000 ,100.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',100.01000000 ,250.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',250.01000000 ,500.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',500.01000000 ,750.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',750.01000000 ,1000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',1000.01000000 ,1200.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',1200.01000000 ,1500.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',1500.01000000 ,2000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',2000.01000000 ,2500.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',2500.01000000 ,3000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',3000.01000000 ,3500.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',3500.01000000 ,4000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',4000.01000000 ,5000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',5000.01000000 ,6000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',6000.01000000 ,7000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',7000.01000000 ,8000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',8000.01000000 ,9000.00000000 ,6.55000000,1000.00000000 UNION
SELECT '369229','0',9000.01000000 ,10000.00000000 ,6.55000000,1000.00000000
;With
MaxVal AS
(
SELECT
15000.00 AS MaxValue
,'0' AS [Account Caption (Pricing)]
,'369229' AS CLIENT_NUMBER
)
,RecursiveCTE AS
(
SELECT
[Client Number]
,[Account Caption]
,[From] = CAST([From] AS NUMERIC(18,8))
,[To] = CAST([To] AS NUMERIC(18,8))
,[ADDL UNIT RATE]
,[ADDL UNIT BASE]
,MaxValue
FROM #DataSet v JOIN MaxVal m on m.[Account Caption (Pricing)] = v.[Account Caption] AND m.CLIENT_NUMBER = v.[Client Number]
UNION ALL
SELECT
[Client Number]
,[Account Caption]
,CAST([From] + [ADDL UNIT BASE] AS NUMERIC(18,8))
,CAST([To] + [ADDL UNIT BASE] AS NUMERIC(18,8))
,[ADDL UNIT RATE]
,[ADDL UNIT BASE]
,MaxValue
FROM RecursiveCTE
WHERE [To] + [ADDL UNIT BASE] >= MaxValue
)
SELECT * FROM RecursiveCTE
WHERE 1=1
OPTION (maxrecursion 100)
Я ожидаю, что [From] и [To] будут построены еще на 1000, пока [To] не станет больше, чем или равно моему максимальному значению 15000,00
ожидаемых результатов:
![enter image description here](https://i.stack.imgur.com/qPrqn.png)
Вместо этого я не получаю никаких изменений в Первоначальные результаты таблицы. Что я тут не так делаю?