我正在嘗試使用「插入」將計算行添加到表中。 所以大概我試圖添加和拆分以下內容:在sql中添加一行變量
[RFC] [Tons]
[1] NAME 1 30
[2] NAME 2 50
[3] NAME 2 30
[4] NAME 2 20
所以,我得到:
[RFC] [Tons]
[1] NAME 1 30
[2] NAME 2 42
[3] NAME 2 58
正如你所看到的,我添加的所有名稱2,然後分成兩排:佔總數的42%,一個佔總數的58%。
將計算出來的變量是非常簡單的:
首先我聲明我的變量,它是
DECLARE @TonsE int;
SET @TonsE = CASE
WHEN
(SELECT SUM(mkt_impotemporal.Tons)*0.42 FROM mkt_impotemporal where RFC='EHP040219KX0' GROUP BY RFC) is null THEN 0
ELSE
(SELECT SUM(mkt_impotemporal.Tons)*0.42 FROM mkt_impotemporal where RFC='EHP040219KX0' GROUP BY RFC)
END;
然後我補充一下:
INSERT INTO mkt_impotemporal
VALUES
('EHP040219KX0',
@TonsE)
然而,現在我卡住了新行佔總數的42%,但似乎無法更改其餘行以僅反映其原始值的58%,即使我在插入新行之前運行更新(我不是sur e它是如何工作的,但似乎變量不會「存儲」另一個查詢的數字)。
關於我如何實現這一點的任何想法?提前致謝!
你正在使用什麼數據庫系統? –
@AlexanderFedorenko SQL 2012. – eflores89