我遇到的情况,我有两个表:SQL Server 2008中:基于优先级UPDATE柱
CREATE TABLE #TableA (payee_ID int, NetAmount decimal(9,2))
INSERT INTO #tableA (Payee_ID,NetAmount)
VALUES (2408332,1539.18)
CREATE TABLE #TableB (Payee_ID int,Priority int,formatTag char(1), Rate decimal(5,2), Netamount decimal(9,2), dedicatedAmt decimal(9,2))
INSERT INTO #TableB (Payee_ID, Priority, FormatTag, Rate)
VALUES
(2408332, 1, ‘F’, 500.00),
(2408332, 2, ‘P’, 0.25),
(2408332, 3, ‘P’, 0.25),
(2408332, 4, ‘F’, 100.00),
(2408332, 5, ‘P’, 1.00)
哪里FormatTag是平率或百分比。
现在我想通过为此收款人启动优先级1来填充NetAmount和专用金额。
其优先级1的他的NetAmount
将总数为net amount
from tableA。如果formattag
是Flat rate
,则dedicated amount
将是rate
。
而且,如果formattag
是百分比,那么它将是总数的百分比netAmount
。
我想去的优先事项,并保持基于先前的优先使用的dedicatedAmmt减去TableB中的netAmount:
Expected result:
Payee_ID Priority formatTag Rate Netamount dedicatedAmt
2408332 1 F 500.00 1539.18 500.00
2408332 2 P 0.25 1039.18 259.80
2408332 3 P 0.25 779.38 194.85
2408332 4 F 100.00 584.53 100.00
2408332 5 P 1.00 484.53 484.53
感谢
你应该标记与正在使用的数据库这个问题。我相信这是一个难题,因为您必须使用递归CTE在SQL中解决它。 – 2015-01-26 19:45:37
我已经更新了标签。谢谢 – user3294322 2015-01-26 19:55:13