このような税データの表があります
DECLARE @TaxSummary TABLE(
TaxRegionType SMALLINT NOT NULL,
ActualRegionTaxTotal NUMERIC(10,2) NULL,
LineRegionTaxTotal NUMERIC(10,2) NULL,
ExtendedRegionTaxTotal Numeric(14,6) NULL
)
そして、その表の各地域タイプに分配するセント数が設定されています...たとえば、5セント余分にあるとしましょう。
Declare @Cents int = 5
Declare @Delta = 0.01
そして現在、私はこのようなwhileループでテーブルを更新しています
SET @Count = 0
WHILE (@Count < @Cents)
BEGIN
SET @Count = @Count + 1
UPDATE @TaxSummary
SET ActualRegionTaxTotal = ActualRegionTaxTotal + @Delta
WHERE TaxRegionType =
(SELECT TOP(1) TaxRegionType
FROM @TaxSummary
WHERE ExtendedRegionTaxTotal <> 0
ORDER BY ExtendedRegionTaxTotal-ActualRegionTaxTotal DESC)
END
CTEを使用してこれを行う方法はありますか?または非ループ?基本的に、差が最も大きい行から始まる各行に1セントを追加し、余分なセントがすべて使用されるまで、差が最も大きい行に追加し続けます。