Sample Header Ad - 728x90

SQL YTD calculations adding periods without postings

0 votes
0 answers
198 views
I have a query which give me the YTD figures per company (client), account, IC and period for the periods in which financial postings have been performed. The table where I get this from is AAGCONSO which is a balance table of all the accounts, per client, period and IC. SELECT * FROM (SELECT client, account, IC, period, SUM(amount) OVER (PARTITION BY client, account, IC, LEFT(period, 4) ORDER BY client, account, IC, period) AS YTD, ROW_NUMBER() OVER (PARTITION BY client, account, IC, period ORDER BY client, account, IC, period ASC) AS RowYTD FROM (SELECT t .client AS client, t .dim1 AS account, CASE WHEN t .dim2 IN ('10', '11', '30', '31', '32', '33', '34', '35', '36', '50', '60') THEN t .dim2 ELSE '' END AS IC, t .dim2, t .period AS period, SUM(t .amount) AS amount, ROW_NUMBER() OVER (PARTITION BY t .client, t .dim1, LEFT(period, 4) ORDER BY t .client, t .dim1, LEFT(period, 4) DESC) AS Row FROM aagconso t WHERE t .period >= 201853 AND client IN ('10', '11', '30', '31', '32', '33', '34', '35', '36', '50', '60') AND t .dim1 = '111110' GROUP BY t .client, t .dim1, t .dim2, period, t .amount HAVING SUM(t .amount) 0) AS CTE2) X WHERE RowYTD = 1 strong text ORDER BY 1 DESC Offset 0 Rows This gives me the YTD amounts in the following table enter image description here The totals are correct, however I want to have the periods in which no postings have been performed included with the YTD amount of previous period. I have another table with all possible accounting periods SELECT acc_period FROM dbo.PBAP_GL_PERIODS Which gives me this : enter image description here How do I get a full YTD table including the periods from table B for which there are no postings in table A? I probably need to use a cross apply or join but I really do not see where I get this ... So for example Table A for account 111110 in client 10 gives me this |Client|Account|Period| Amount | RowYTD | ---- | ---- | ----- | ---------- | --- | |10 |111110| 202012| 1325925.000| 1 And I want to have this |Client|Account|Period| Amount | RowYTD | ---- | ---- | ----- | ---------- | --- | |10 |111110| 202000| 0.000| 1 |10 |111110| 202001| 0.000| 1 |10 |111110| 202002| 0.000| 1 |10 |111110| 202003| 0.000| 1 |10 |111110| 202004| 0.000| 1 |10 |111110| 202005| 0.000| 1 |10 |111110| 202006| 0.000| 1 |10 |111110| 202007| 0.000| 1 |10 |111110| 202008| 0.000| 1 |10 |111110| 202009| 0.000| 1 |10 |111110| 202010| 0.000| 1 |10 |111110| 202011| 0.000| 1 |10 |111110| 202012| 1325925.000| 1 Thanks in advance for any help!
Asked by Katrien (1 rep)
Jan 29, 2021, 04:35 PM
Last activity: Jan 29, 2021, 04:42 PM