我被要求创建一个报表,将付款分配到多个帐户之间。付款来自主帐户。然后我需要根据所提到的余额按比例拆分它。
示例数据:
sudo chown -R `whoami`:staff ~/Library/Jupyter
以上是我如何获取数据的示例。
以下是填充表格的一些示例数据
CREATE TABLE [dbo].[tblProRataSplit](
[CustomerNo] [int] NOT NULL,
[AccountNo] [int] NOT NULL,
[Account] [varchar](500) NOT NULL,
[ReferredBalance] [FLOAT] NULL,
[Payment] [FLOAT] NULL
) ON [PRIMARY]
如您所见,150.00付款是针对PRI帐户注册的。我需要拆分150英镑的付款,以便按比例分配5个账户(不均匀分配)。
我在这里有点亏本。如果我不清楚请告诉我,我会提供更多数据。
答案 0 :(得分:2)
; with cte as
(
select p.CustomerNo, p.AccountNo, p.Account, p.Payment,
m.ReferredBalance,
pymt = round(m.ReferredBalance * p.Payment / sum(m.ReferredBalance) over (partition by p.CustomerNo), 2),
rn = row_number() over (partition by p.CustomerNo order by m.ReferredBalance desc)
from tblProRataSplit p
inner join tblProRataSplit m on p.CustomerNo = m.CustomerNo
where p.Account = 'PRI'
-- and m.Account = 'MRGE'
)
select *,
mrge_pymt = c.pymt
+ case when rn = 1 then c.Payment - sum(pymt) over (partition by CustomerNo)
else 0
end
from cte c
如果您确实需要更新表格,则需要另一级别的CTE