Pro Rata在帐户SQL 2008之间拆分

时间:2016-03-09 09:43:10

标签: sql-server sql-server-2008

我被要求创建一个报表,将付款分配到多个帐户之间。付款来自主帐户。然后我需要根据所提到的余额按比例拆分它。

示例数据:

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个账户(不均匀分配)。

我在这里有点亏本。如果我不清楚请告诉我,我会提供更多数据。

1 个答案:

答案 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