我正在尋找每個月產品的餘額運行百分比變化。月份字段代表每個月的最後一個工作日。餘額趨勢分析
我一直在使用下面的公共表表達式的嘗試:
declare @tab table
(DATE DATETIME,
BALANCE DECIMAL (38,8),
PDCT_TYPE_C VARCHAR (5),
EXCL_C VARCHAR (1)
)
INSERT INTO @tab
SELECT
DATE,
SUM(BALANCE),
PDCT_TYPE_C,
RC_EXCL_C
from ERIC..RC_XPOS
WHERE RC_EXCL_C IS NULL AND PDCT_TYPE_C = 'hln'
GROUP BY XPOS_D,PDCT_TYPE_C,RC_EXCL_C
;
with cte as
(
select
row_number() over (order by PDCT_TYPE_C,DATE) rn,
DATE,
BALANCE,
PDCT_TYPE_C
from @tab
)
select
DATE,
BALANCE,
(((select BALANCE from cte where cte.rn=1))-(select BALANCE from cte where cte.rn=t1.rn+1)) as 'EAD MOM Difference',
(((select BALANCE from cte where cte.rn=1))/(select BALANCE from cte where cte.rn=t1.rn+1)) as 'EAD MOM % Difference',
PDCT_TYPE_C
from cte as t1
這是工作正常,如果有一個產品,這個問題雖然是如果有很多產品只是計算該行的百分比變化之前 - 當存在多種產品類型時,這可能是不同的產品。
有誰知道如何解決這個問題?
我希望像下面的結果。我有餘額,日期和產品類型字段可用,但希望計算餘額差額和餘額變化,而不必根據上述行進行行分區和計算。
如果您有任何問題,請讓我知道。
期望的結果:
Date | Balance | Balance Difference | Balance % Change | Product Type
---------------------------------------------------------------
30/06/2017 | 4,000,000.00 | -- | -- | AP
30/06/2017 | 2,000,000.00 | -- | -- | ZA
30/06/2017 | 1,000,000.00 | -- | -- | LP
31/07/2017 | 5,000,000.00 |1,000,000.00 | 0.25 | AP
31/07/2017 | 2,000,000.00 |1,000,000.00 | 0.5 | LP
31/07/2017 | 1,000,000.00 |-1,000,000.00 | -0.5 | ZA
您運行的是哪個版本的SQL Server? –