上个月的 Azure SQL 试算表
Azure SQL trial balance previous month
我有一个 table 的数据。每年的期初余额都是预先计算的,一月份总有一个数字。我希望结转每个月的期初余额,包括任何净变动金额。因此,期初余额字段 (accounting/transaction) 将定义为从年初到上月末的累计 AccountingOpeningBalance
+ AccountingNetChangeAmount
)。我还将 post 截屏我正在尝试做的事情。在 SQL 中执行此操作的最佳方法是什么?这是另一个系统的所有数据的完整加载,因此不会输入 start/end 日期。
*** 暂停进行进一步调查 ***
/****** Object: Table [dbo].[RetrieveTrialBalanceTEST] Script Date: 29/12/2021 17:04:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RetrieveTrialBalanceTEST](
[Company] [int] NOT NULL,
[MainAccount] [int] NOT NULL,
[PortFolioProject] [int] NULL,
[TransactionCurrency] [nvarchar](3) NOT NULL,
[AccountingOpeningBalance] [numeric](38, 6) NULL,
[AccountingNetChangeAmount] [numeric](38, 6) NULL,
[TransactionOpeningBalance] [numeric](38, 6) NULL,
[TransactionNetChangeAmount] [numeric](38, 6) NULL,
[Month] [int] NULL,
[Period] [nvarchar](4000) NULL,
[Year] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(-141194.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-205000.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'BMD', CAST(-27255.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-27255.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(-2428.080000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-3220.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(-220514.900000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-210500.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(-1213310.030000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1084078.320000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(-2449684.590000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1895760.520000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(8235414.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(8235414.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(-3162799.570000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-3162799.570000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20701, N'USD', CAST(-8538.750000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-8538.750000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20706, N'CAD', CAST(-9189.700000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-12000.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-17038.670000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-22378.080000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-115.330000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-148.800000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-16453.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-21946.300000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-72603.980000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-100100.880000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'BMD', CAST(0.000000 AS Numeric(38, 6)), CAST(-39.500000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-39.500000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-16671.250000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-20634.560000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-27757.730000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-33660.000000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-13185.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-16632.000000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-13370.400000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-12000.000000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-5417.500000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-5000.000000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-84489.200000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-76000.000000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-10898.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-10000.000000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-34316.100000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-31500.000000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60065.090000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49407.820000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60479.040000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49863.170000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-12680.530000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-10630.000000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-147617.210000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-124488.790000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60692.420000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49850.040000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-72969.800000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-59846.750000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-67855.430000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-57475.380000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-89161.800000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-75624.430000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-358602.930000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-263658.790000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-342658.990000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-246690.900000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-24548.700000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-17629.940000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-22602.180000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-16337.060000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-408572.870000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-289051.220000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-81834.950000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-58166.600000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-656762.450000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-476738.700000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-184405.370000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-134115.420000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(426074.270000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(426074.270000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(466995.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(466995.850000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(42436.370000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(42436.370000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(211274.660000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(211274.660000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(467332.520000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(467332.520000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(324603.360000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(324603.360000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(908661.630000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(908661.630000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(523337.300000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(523337.300000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-7406.250000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-7406.250000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-50487.420000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-50487.420000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-4525.400000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-4525.400000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-1927.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1927.850000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-55464.080000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-55464.080000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-143506.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-143506.760000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-142850.050000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-142850.050000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20701, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-681.740000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-681.740000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
SELECT * FROM dbo.RetrieveTrialBalanceTEST ORDER BY Month
希望我没听错。如果是这样,这就是我的尝试...
SELECT *,
[AccountingCumulativeOpeningBalance] = (
CASE [Month]
WHEN 1 THEN 0
ELSE
(
( SELECT SUM(AccountingNetChangeAmount)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month < O.Month ) +
( SELECT SUM(AccountingOpeningBalance)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month = 1 )
)
END ),
[TransactionCumulativeOpeningBalance] = (
CASE [Month]
WHEN 1 THEN 0
ELSE
(
( SELECT SUM(TransactionNetChangeAmount)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month < O.Month ) +
( SELECT SUM(TransactionOpeningBalance)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month = 1 )
)
END )
FROM dbo.RetrieveTrialBalanceTEST AS O
ORDER BY Company, MainAccount, PortFolioProject, TransactionCurrency, Month
罗嗦吗? 是!可以做得更好吗? 可能!
我已经核对了输出,它按每个属性分组正确地逐月向前流动余额。我认为汇总货币没有意义,并且对每个属性进行汇总是有意义的。
此外,就我个人而言,我会将该数据存储在另一个字段中。将数据添加回原始字段,对我来说,这不是必需的,并且混淆了来源和计算的内容。
您可以在 table 的基础上构建一个视图,这基本上就是我的回答所做的。
我希望这就是你所追求的。
尝试这样的事情,我们允许在同一个月内同时出现 期初余额 和 净变化(通常发生一月)。
注意:我已将 AccountOpen 和 Account Net Change 包括在当月的 AccountBalance (ABal) 中,并且这是在每年的每个后续月份累积的,从下一年开始。
TransactionOpen、Transaction Net Change等同理
但是让我们调整逻辑以在每年开始的任何期初余额行之后应用净变动行。
稍后,我们可以(如果需要)根据需要用今年最后一个可用月份的计算结果填充任何缺失的月度数据。
SELECT Year, Month AS Mon, Period, MainAccount AS Acct, PortFolioProject AS Folio, Company AS Comp, TransactionCurrency AS TCur
, AccountingOpeningBalance AS AOpen
, AccountingNetChangeAmount AS ANet
, SUM(AccountingOpeningBalance + AccountingNetChangeAmount) OVER (PARTITION BY Year, MainAccount, PortFolioProject, Company, TransactionCurrency ORDER BY Month, AccountingNetChangeAmount DESC) AS ABal
, TransactionOpeningBalance AS TOpen
, TransactionNetChangeAmount AS TNet
, SUM(TransactionOpeningBalance + TransactionNetChangeAmount) OVER (PARTITION BY Year, MainAccount, PortFolioProject, Company, TransactionCurrency ORDER BY Month, TransactionNetChangeAmount DESC) AS TBal
FROM RetrieveTrialBalanceTEST
WHERE TransactionCurrency = 'EUR'
ORDER BY Company, MainAccount, PortFolioProject, TransactionCurrency, Year, Month, AccountingOpeningBalance
;
以下结果基于问题中的给定数据,加上一些用 2022 年日期复制的重复行,以显示每年如何重新开始计算。
此外,结果基于向查询添加以下过滤器,以仅显示 'EUR' 相关结果,以简化审核。
WHERE TransactionCurrency = 'EUR'
另请注意,我没有在同一个月内对常见(Open/Net 更改)行进行分组,但这很容易做到。我只是将它们与 window 函数相加。这仅在一月份出现,在当前数据中,Open 和 Net Change 均非 0。
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| Year | Mon | Period | Acct | Folio | Comp | TCur | AOpen | ANet | ABal | TOpen | TNet | TBal |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | 0.000 | -60065.090 | -1273375.120 | 0.000 | -49407.820 | -1133486.140 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | EUR | 0.000 | -60479.040 | -1333854.160 | 0.000 | -49863.170 | -1183349.310 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | EUR | 0.000 | -12680.530 | -1346534.690 | 0.000 | -10630.000 | -1193979.310 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | EUR | 0.000 | -147617.210 | -1494151.900 | 0.000 | -124488.790 | -1318468.100 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | EUR | 0.000 | -60692.420 | -1554844.320 | 0.000 | -49850.040 | -1368318.140 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | EUR | 0.000 | -72969.800 | -1627814.120 | 0.000 | -59846.750 | -1428164.890 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | EUR | 0.000 | -67855.430 | -1695669.550 | 0.000 | -57475.380 | -1485640.270 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | EUR | 0.000 | -89161.800 | -1784831.350 | 0.000 | -75624.430 | -1561264.700 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
完整结果如下所示:
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| Year | Mon | Period | Acct | Folio | Comp | TCur | AOpen | ANet | ABal | TOpen | TNet | TBal |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| 2021 | 1 | JAN | 123456 | 696 | 1234 | AUD | -141194.000 | 0.000 | -141194.000 | -205000.000 | 0.000 | -205000.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | AUD | 0.000 | -17038.670 | -158232.670 | 0.000 | -22378.080 | -227378.080 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | AUD | 0.000 | -115.330 | -158348.000 | 0.000 | -148.800 | -227526.880 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | AUD | 0.000 | -16453.140 | -174801.140 | 0.000 | -21946.300 | -249473.180 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | AUD | 0.000 | -72603.980 | -247405.120 | 0.000 | -100100.880 | -349574.060 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | AUD | -141194.000 | 0.000 | -141194.000 | -205000.000 | 0.000 | -205000.000 |
| 2022 | 4 | APR | 123456 | 696 | 1234 | AUD | 0.000 | -17038.670 | -158232.670 | 0.000 | -22378.080 | -227378.080 |
| 2022 | 5 | MAY | 123456 | 696 | 1234 | AUD | 0.000 | -115.330 | -158348.000 | 0.000 | -148.800 | -227526.880 |
| 2022 | 7 | JUL | 123456 | 696 | 1234 | AUD | 0.000 | -16453.140 | -174801.140 | 0.000 | -21946.300 | -249473.180 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | BMD | -27255.140 | 0.000 | -27255.140 | -27255.140 | 0.000 | -27255.140 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | BMD | 0.000 | -39.500 | -27294.640 | 0.000 | -39.500 | -27294.640 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | BMD | -27255.140 | 0.000 | -27255.140 | -27255.140 | 0.000 | -27255.140 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | CAD | -2428.080 | 0.000 | -2428.080 | -3220.000 | 0.000 | -3220.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | CAD | 0.000 | -16671.250 | -19099.330 | 0.000 | -20634.560 | -23854.560 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | CAD | 0.000 | -27757.730 | -46857.060 | 0.000 | -33660.000 | -57514.560 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | CAD | 0.000 | -13185.850 | -60042.910 | 0.000 | -16632.000 | -74146.560 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | CAD | -2428.080 | 0.000 | -2428.080 | -3220.000 | 0.000 | -3220.000 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | CHF | -220514.900 | 0.000 | -220514.900 | -210500.000 | 0.000 | -210500.000 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | CHF | 0.000 | -13370.400 | -233885.300 | 0.000 | -12000.000 | -222500.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | CHF | 0.000 | -5417.500 | -239302.800 | 0.000 | -5000.000 | -227500.000 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | CHF | 0.000 | -84489.200 | -323792.000 | 0.000 | -76000.000 | -303500.000 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | CHF | 0.000 | -10898.000 | -334690.000 | 0.000 | -10000.000 | -313500.000 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | CHF | 0.000 | -34316.100 | -369006.100 | 0.000 | -31500.000 | -345000.000 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | CHF | -220514.900 | 0.000 | -220514.900 | -210500.000 | 0.000 | -210500.000 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | 0.000 | -60065.090 | -1273375.120 | 0.000 | -49407.820 | -1133486.140 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | EUR | 0.000 | -60479.040 | -1333854.160 | 0.000 | -49863.170 | -1183349.310 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | EUR | 0.000 | -12680.530 | -1346534.690 | 0.000 | -10630.000 | -1193979.310 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | EUR | 0.000 | -147617.210 | -1494151.900 | 0.000 | -124488.790 | -1318468.100 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | EUR | 0.000 | -60692.420 | -1554844.320 | 0.000 | -49850.040 | -1368318.140 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | EUR | 0.000 | -72969.800 | -1627814.120 | 0.000 | -59846.750 | -1428164.890 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | EUR | 0.000 | -67855.430 | -1695669.550 | 0.000 | -57475.380 | -1485640.270 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | EUR | 0.000 | -89161.800 | -1784831.350 | 0.000 | -75624.430 | -1561264.700 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | GBP | -2449684.590 | 0.000 | -2449684.590 | -1895760.520 | 0.000 | -1895760.520 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | GBP | 0.000 | -358602.930 | -2808287.520 | 0.000 | -263658.790 | -2159419.310 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | GBP | 0.000 | -342658.990 | -3150946.510 | 0.000 | -246690.900 | -2406110.210 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | GBP | 0.000 | -24548.700 | -3175495.210 | 0.000 | -17629.940 | -2423740.150 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | GBP | 0.000 | -22602.180 | -3198097.390 | 0.000 | -16337.060 | -2440077.210 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | GBP | 0.000 | -408572.870 | -3606670.260 | 0.000 | -289051.220 | -2729128.430 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | GBP | 0.000 | -81834.950 | -3688505.210 | 0.000 | -58166.600 | -2787295.030 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | GBP | 0.000 | -656762.450 | -4345267.660 | 0.000 | -476738.700 | -3264033.730 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | GBP | 0.000 | -184405.370 | -4529673.030 | 0.000 | -134115.420 | -3398149.150 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | GBP | -2449684.590 | 0.000 | -2449684.590 | -1895760.520 | 0.000 | -1895760.520 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | USD | 0.000 | 426074.270 | 426074.270 | 0.000 | 426074.270 | 426074.270 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | USD | 8235414.760 | 0.000 | 8661489.030 | 8235414.760 | 0.000 | 8661489.030 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | USD | 0.000 | 466995.850 | 9128484.880 | 0.000 | 466995.850 | 9128484.880 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | USD | 0.000 | 42436.370 | 9170921.250 | 0.000 | 42436.370 | 9170921.250 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | USD | 0.000 | 211274.660 | 9382195.910 | 0.000 | 211274.660 | 9382195.910 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | USD | 0.000 | 467332.520 | 9849528.430 | 0.000 | 467332.520 | 9849528.430 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | USD | 0.000 | 324603.360 | 10174131.790 | 0.000 | 324603.360 | 10174131.790 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | USD | 0.000 | 908661.630 | 11082793.420 | 0.000 | 908661.630 | 11082793.420 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | USD | 0.000 | 523337.300 | 11606130.720 | 0.000 | 523337.300 | 11606130.720 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | USD | 8235414.760 | 0.000 | 8235414.760 | 8235414.760 | 0.000 | 8235414.760 |
| 2021 | 1 | JAN | 123456 | 20698 | 1234 | USD | -3162799.570 | 0.000 | -3162799.570 | -3162799.570 | 0.000 | -3162799.570 |
| 2021 | 1 | JAN | 123456 | 20698 | 1234 | USD | 0.000 | -7406.250 | -3170205.820 | 0.000 | -7406.250 | -3170205.820 |
| 2021 | 2 | FEB | 123456 | 20698 | 1234 | USD | 0.000 | -50487.420 | -3220693.240 | 0.000 | -50487.420 | -3220693.240 |
| 2021 | 3 | MAR | 123456 | 20698 | 1234 | USD | 0.000 | -4525.400 | -3225218.640 | 0.000 | -4525.400 | -3225218.640 |
| 2021 | 4 | APR | 123456 | 20698 | 1234 | USD | 0.000 | -1927.850 | -3227146.490 | 0.000 | -1927.850 | -3227146.490 |
| 2021 | 6 | JUN | 123456 | 20698 | 1234 | USD | 0.000 | -55464.080 | -3282610.570 | 0.000 | -55464.080 | -3282610.570 |
| 2021 | 7 | JUL | 123456 | 20698 | 1234 | USD | 0.000 | -143506.760 | -3426117.330 | 0.000 | -143506.760 | -3426117.330 |
| 2021 | 8 | AUG | 123456 | 20698 | 1234 | USD | 0.000 | -142850.050 | -3568967.380 | 0.000 | -142850.050 | -3568967.380 |
| 2022 | 1 | JAN | 123456 | 20698 | 1234 | USD | -3162799.570 | 0.000 | -3162799.570 | -3162799.570 | 0.000 | -3162799.570 |
| 2021 | 1 | JAN | 123456 | 20701 | 1234 | USD | -8538.750 | 0.000 | -8538.750 | -8538.750 | 0.000 | -8538.750 |
| 2021 | 3 | MAR | 123456 | 20701 | 1234 | USD | 0.000 | -681.740 | -9220.490 | 0.000 | -681.740 | -9220.490 |
| 2022 | 1 | JAN | 123456 | 20701 | 1234 | USD | -8538.750 | 0.000 | -8538.750 | -8538.750 | 0.000 | -8538.750 |
| 2021 | 1 | JAN | 123456 | 20706 | 1234 | CAD | -9189.700 | 0.000 | -9189.700 | -12000.000 | 0.000 | -12000.000 |
| 2022 | 1 | JAN | 123456 | 20706 | 1234 | CAD | -9189.700 | 0.000 | -9189.700 | -12000.000 | 0.000 | -12000.000 |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
我有一个 table 的数据。每年的期初余额都是预先计算的,一月份总有一个数字。我希望结转每个月的期初余额,包括任何净变动金额。因此,期初余额字段 (accounting/transaction) 将定义为从年初到上月末的累计 AccountingOpeningBalance
+ AccountingNetChangeAmount
)。我还将 post 截屏我正在尝试做的事情。在 SQL 中执行此操作的最佳方法是什么?这是另一个系统的所有数据的完整加载,因此不会输入 start/end 日期。
*** 暂停进行进一步调查 ***
/****** Object: Table [dbo].[RetrieveTrialBalanceTEST] Script Date: 29/12/2021 17:04:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RetrieveTrialBalanceTEST](
[Company] [int] NOT NULL,
[MainAccount] [int] NOT NULL,
[PortFolioProject] [int] NULL,
[TransactionCurrency] [nvarchar](3) NOT NULL,
[AccountingOpeningBalance] [numeric](38, 6) NULL,
[AccountingNetChangeAmount] [numeric](38, 6) NULL,
[TransactionOpeningBalance] [numeric](38, 6) NULL,
[TransactionNetChangeAmount] [numeric](38, 6) NULL,
[Month] [int] NULL,
[Period] [nvarchar](4000) NULL,
[Year] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(-141194.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-205000.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'BMD', CAST(-27255.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-27255.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(-2428.080000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-3220.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(-220514.900000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-210500.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(-1213310.030000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1084078.320000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(-2449684.590000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1895760.520000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(8235414.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(8235414.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(-3162799.570000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-3162799.570000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20701, N'USD', CAST(-8538.750000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-8538.750000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20706, N'CAD', CAST(-9189.700000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-12000.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-17038.670000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-22378.080000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-115.330000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-148.800000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-16453.140000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-21946.300000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'AUD', CAST(0.000000 AS Numeric(38, 6)), CAST(-72603.980000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-100100.880000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'BMD', CAST(0.000000 AS Numeric(38, 6)), CAST(-39.500000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-39.500000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-16671.250000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-20634.560000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-27757.730000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-33660.000000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CAD', CAST(0.000000 AS Numeric(38, 6)), CAST(-13185.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-16632.000000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-13370.400000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-12000.000000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-5417.500000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-5000.000000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-84489.200000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-76000.000000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-10898.000000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-10000.000000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'CHF', CAST(0.000000 AS Numeric(38, 6)), CAST(-34316.100000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-31500.000000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60065.090000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49407.820000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60479.040000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49863.170000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-12680.530000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-10630.000000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-147617.210000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-124488.790000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-60692.420000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-49850.040000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-72969.800000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-59846.750000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-67855.430000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-57475.380000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'EUR', CAST(0.000000 AS Numeric(38, 6)), CAST(-89161.800000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-75624.430000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-358602.930000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-263658.790000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-342658.990000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-246690.900000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-24548.700000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-17629.940000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-22602.180000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-16337.060000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-408572.870000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-289051.220000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-81834.950000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-58166.600000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-656762.450000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-476738.700000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'GBP', CAST(0.000000 AS Numeric(38, 6)), CAST(-184405.370000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-134115.420000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(426074.270000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(426074.270000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(466995.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(466995.850000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(42436.370000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(42436.370000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(211274.660000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(211274.660000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(467332.520000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(467332.520000 AS Numeric(38, 6)), 5, N'MAY', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(324603.360000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(324603.360000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(908661.630000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(908661.630000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 696, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(523337.300000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(523337.300000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-7406.250000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-7406.250000 AS Numeric(38, 6)), 1, N'JAN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-50487.420000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-50487.420000 AS Numeric(38, 6)), 2, N'FEB', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-4525.400000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-4525.400000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-1927.850000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-1927.850000 AS Numeric(38, 6)), 4, N'APR', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-55464.080000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-55464.080000 AS Numeric(38, 6)), 6, N'JUN', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-143506.760000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-143506.760000 AS Numeric(38, 6)), 7, N'JUL', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20698, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-142850.050000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-142850.050000 AS Numeric(38, 6)), 8, N'AUG', 2021)
GO
INSERT [dbo].[RetrieveTrialBalanceTEST] ([Company], [MainAccount], [PortFolioProject], [TransactionCurrency], [AccountingOpeningBalance], [AccountingNetChangeAmount], [TransactionOpeningBalance], [TransactionNetChangeAmount], [Month], [Period], [Year]) VALUES (1234, 123456, 20701, N'USD', CAST(0.000000 AS Numeric(38, 6)), CAST(-681.740000 AS Numeric(38, 6)), CAST(0.000000 AS Numeric(38, 6)), CAST(-681.740000 AS Numeric(38, 6)), 3, N'MAR', 2021)
GO
SELECT * FROM dbo.RetrieveTrialBalanceTEST ORDER BY Month
希望我没听错。如果是这样,这就是我的尝试...
SELECT *,
[AccountingCumulativeOpeningBalance] = (
CASE [Month]
WHEN 1 THEN 0
ELSE
(
( SELECT SUM(AccountingNetChangeAmount)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month < O.Month ) +
( SELECT SUM(AccountingOpeningBalance)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month = 1 )
)
END ),
[TransactionCumulativeOpeningBalance] = (
CASE [Month]
WHEN 1 THEN 0
ELSE
(
( SELECT SUM(TransactionNetChangeAmount)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month < O.Month ) +
( SELECT SUM(TransactionOpeningBalance)
FROM dbo.RetrieveTrialBalanceTEST AS I
WHERE I.Company = O.Company
AND I.MainAccount = O.MainAccount
AND I.PortFolioProject = O.PortFolioProject
AND I.TransactionCurrency = O.TransactionCurrency
AND I.Year = O.Year
AND I.Month = 1 )
)
END )
FROM dbo.RetrieveTrialBalanceTEST AS O
ORDER BY Company, MainAccount, PortFolioProject, TransactionCurrency, Month
罗嗦吗? 是!可以做得更好吗? 可能!
我已经核对了输出,它按每个属性分组正确地逐月向前流动余额。我认为汇总货币没有意义,并且对每个属性进行汇总是有意义的。
此外,就我个人而言,我会将该数据存储在另一个字段中。将数据添加回原始字段,对我来说,这不是必需的,并且混淆了来源和计算的内容。
您可以在 table 的基础上构建一个视图,这基本上就是我的回答所做的。
我希望这就是你所追求的。
尝试这样的事情,我们允许在同一个月内同时出现 期初余额 和 净变化(通常发生一月)。
注意:我已将 AccountOpen 和 Account Net Change 包括在当月的 AccountBalance (ABal) 中,并且这是在每年的每个后续月份累积的,从下一年开始。
TransactionOpen、Transaction Net Change等同理
但是让我们调整逻辑以在每年开始的任何期初余额行之后应用净变动行。
稍后,我们可以(如果需要)根据需要用今年最后一个可用月份的计算结果填充任何缺失的月度数据。
SELECT Year, Month AS Mon, Period, MainAccount AS Acct, PortFolioProject AS Folio, Company AS Comp, TransactionCurrency AS TCur
, AccountingOpeningBalance AS AOpen
, AccountingNetChangeAmount AS ANet
, SUM(AccountingOpeningBalance + AccountingNetChangeAmount) OVER (PARTITION BY Year, MainAccount, PortFolioProject, Company, TransactionCurrency ORDER BY Month, AccountingNetChangeAmount DESC) AS ABal
, TransactionOpeningBalance AS TOpen
, TransactionNetChangeAmount AS TNet
, SUM(TransactionOpeningBalance + TransactionNetChangeAmount) OVER (PARTITION BY Year, MainAccount, PortFolioProject, Company, TransactionCurrency ORDER BY Month, TransactionNetChangeAmount DESC) AS TBal
FROM RetrieveTrialBalanceTEST
WHERE TransactionCurrency = 'EUR'
ORDER BY Company, MainAccount, PortFolioProject, TransactionCurrency, Year, Month, AccountingOpeningBalance
;
以下结果基于问题中的给定数据,加上一些用 2022 年日期复制的重复行,以显示每年如何重新开始计算。
此外,结果基于向查询添加以下过滤器,以仅显示 'EUR' 相关结果,以简化审核。
WHERE TransactionCurrency = 'EUR'
另请注意,我没有在同一个月内对常见(Open/Net 更改)行进行分组,但这很容易做到。我只是将它们与 window 函数相加。这仅在一月份出现,在当前数据中,Open 和 Net Change 均非 0。
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| Year | Mon | Period | Acct | Folio | Comp | TCur | AOpen | ANet | ABal | TOpen | TNet | TBal |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | 0.000 | -60065.090 | -1273375.120 | 0.000 | -49407.820 | -1133486.140 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | EUR | 0.000 | -60479.040 | -1333854.160 | 0.000 | -49863.170 | -1183349.310 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | EUR | 0.000 | -12680.530 | -1346534.690 | 0.000 | -10630.000 | -1193979.310 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | EUR | 0.000 | -147617.210 | -1494151.900 | 0.000 | -124488.790 | -1318468.100 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | EUR | 0.000 | -60692.420 | -1554844.320 | 0.000 | -49850.040 | -1368318.140 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | EUR | 0.000 | -72969.800 | -1627814.120 | 0.000 | -59846.750 | -1428164.890 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | EUR | 0.000 | -67855.430 | -1695669.550 | 0.000 | -57475.380 | -1485640.270 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | EUR | 0.000 | -89161.800 | -1784831.350 | 0.000 | -75624.430 | -1561264.700 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
完整结果如下所示:
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| Year | Mon | Period | Acct | Folio | Comp | TCur | AOpen | ANet | ABal | TOpen | TNet | TBal |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+
| 2021 | 1 | JAN | 123456 | 696 | 1234 | AUD | -141194.000 | 0.000 | -141194.000 | -205000.000 | 0.000 | -205000.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | AUD | 0.000 | -17038.670 | -158232.670 | 0.000 | -22378.080 | -227378.080 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | AUD | 0.000 | -115.330 | -158348.000 | 0.000 | -148.800 | -227526.880 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | AUD | 0.000 | -16453.140 | -174801.140 | 0.000 | -21946.300 | -249473.180 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | AUD | 0.000 | -72603.980 | -247405.120 | 0.000 | -100100.880 | -349574.060 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | AUD | -141194.000 | 0.000 | -141194.000 | -205000.000 | 0.000 | -205000.000 |
| 2022 | 4 | APR | 123456 | 696 | 1234 | AUD | 0.000 | -17038.670 | -158232.670 | 0.000 | -22378.080 | -227378.080 |
| 2022 | 5 | MAY | 123456 | 696 | 1234 | AUD | 0.000 | -115.330 | -158348.000 | 0.000 | -148.800 | -227526.880 |
| 2022 | 7 | JUL | 123456 | 696 | 1234 | AUD | 0.000 | -16453.140 | -174801.140 | 0.000 | -21946.300 | -249473.180 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | BMD | -27255.140 | 0.000 | -27255.140 | -27255.140 | 0.000 | -27255.140 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | BMD | 0.000 | -39.500 | -27294.640 | 0.000 | -39.500 | -27294.640 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | BMD | -27255.140 | 0.000 | -27255.140 | -27255.140 | 0.000 | -27255.140 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | CAD | -2428.080 | 0.000 | -2428.080 | -3220.000 | 0.000 | -3220.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | CAD | 0.000 | -16671.250 | -19099.330 | 0.000 | -20634.560 | -23854.560 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | CAD | 0.000 | -27757.730 | -46857.060 | 0.000 | -33660.000 | -57514.560 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | CAD | 0.000 | -13185.850 | -60042.910 | 0.000 | -16632.000 | -74146.560 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | CAD | -2428.080 | 0.000 | -2428.080 | -3220.000 | 0.000 | -3220.000 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | CHF | -220514.900 | 0.000 | -220514.900 | -210500.000 | 0.000 | -210500.000 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | CHF | 0.000 | -13370.400 | -233885.300 | 0.000 | -12000.000 | -222500.000 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | CHF | 0.000 | -5417.500 | -239302.800 | 0.000 | -5000.000 | -227500.000 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | CHF | 0.000 | -84489.200 | -323792.000 | 0.000 | -76000.000 | -303500.000 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | CHF | 0.000 | -10898.000 | -334690.000 | 0.000 | -10000.000 | -313500.000 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | CHF | 0.000 | -34316.100 | -369006.100 | 0.000 | -31500.000 | -345000.000 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | CHF | -220514.900 | 0.000 | -220514.900 | -210500.000 | 0.000 | -210500.000 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | EUR | 0.000 | -60065.090 | -1273375.120 | 0.000 | -49407.820 | -1133486.140 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | EUR | 0.000 | -60479.040 | -1333854.160 | 0.000 | -49863.170 | -1183349.310 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | EUR | 0.000 | -12680.530 | -1346534.690 | 0.000 | -10630.000 | -1193979.310 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | EUR | 0.000 | -147617.210 | -1494151.900 | 0.000 | -124488.790 | -1318468.100 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | EUR | 0.000 | -60692.420 | -1554844.320 | 0.000 | -49850.040 | -1368318.140 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | EUR | 0.000 | -72969.800 | -1627814.120 | 0.000 | -59846.750 | -1428164.890 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | EUR | 0.000 | -67855.430 | -1695669.550 | 0.000 | -57475.380 | -1485640.270 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | EUR | 0.000 | -89161.800 | -1784831.350 | 0.000 | -75624.430 | -1561264.700 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | EUR | -1213310.030 | 0.000 | -1213310.030 | -1084078.320 | 0.000 | -1084078.320 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | GBP | -2449684.590 | 0.000 | -2449684.590 | -1895760.520 | 0.000 | -1895760.520 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | GBP | 0.000 | -358602.930 | -2808287.520 | 0.000 | -263658.790 | -2159419.310 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | GBP | 0.000 | -342658.990 | -3150946.510 | 0.000 | -246690.900 | -2406110.210 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | GBP | 0.000 | -24548.700 | -3175495.210 | 0.000 | -17629.940 | -2423740.150 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | GBP | 0.000 | -22602.180 | -3198097.390 | 0.000 | -16337.060 | -2440077.210 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | GBP | 0.000 | -408572.870 | -3606670.260 | 0.000 | -289051.220 | -2729128.430 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | GBP | 0.000 | -81834.950 | -3688505.210 | 0.000 | -58166.600 | -2787295.030 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | GBP | 0.000 | -656762.450 | -4345267.660 | 0.000 | -476738.700 | -3264033.730 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | GBP | 0.000 | -184405.370 | -4529673.030 | 0.000 | -134115.420 | -3398149.150 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | GBP | -2449684.590 | 0.000 | -2449684.590 | -1895760.520 | 0.000 | -1895760.520 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | USD | 0.000 | 426074.270 | 426074.270 | 0.000 | 426074.270 | 426074.270 |
| 2021 | 1 | JAN | 123456 | 696 | 1234 | USD | 8235414.760 | 0.000 | 8661489.030 | 8235414.760 | 0.000 | 8661489.030 |
| 2021 | 2 | FEB | 123456 | 696 | 1234 | USD | 0.000 | 466995.850 | 9128484.880 | 0.000 | 466995.850 | 9128484.880 |
| 2021 | 3 | MAR | 123456 | 696 | 1234 | USD | 0.000 | 42436.370 | 9170921.250 | 0.000 | 42436.370 | 9170921.250 |
| 2021 | 4 | APR | 123456 | 696 | 1234 | USD | 0.000 | 211274.660 | 9382195.910 | 0.000 | 211274.660 | 9382195.910 |
| 2021 | 5 | MAY | 123456 | 696 | 1234 | USD | 0.000 | 467332.520 | 9849528.430 | 0.000 | 467332.520 | 9849528.430 |
| 2021 | 6 | JUN | 123456 | 696 | 1234 | USD | 0.000 | 324603.360 | 10174131.790 | 0.000 | 324603.360 | 10174131.790 |
| 2021 | 7 | JUL | 123456 | 696 | 1234 | USD | 0.000 | 908661.630 | 11082793.420 | 0.000 | 908661.630 | 11082793.420 |
| 2021 | 8 | AUG | 123456 | 696 | 1234 | USD | 0.000 | 523337.300 | 11606130.720 | 0.000 | 523337.300 | 11606130.720 |
| 2022 | 1 | JAN | 123456 | 696 | 1234 | USD | 8235414.760 | 0.000 | 8235414.760 | 8235414.760 | 0.000 | 8235414.760 |
| 2021 | 1 | JAN | 123456 | 20698 | 1234 | USD | -3162799.570 | 0.000 | -3162799.570 | -3162799.570 | 0.000 | -3162799.570 |
| 2021 | 1 | JAN | 123456 | 20698 | 1234 | USD | 0.000 | -7406.250 | -3170205.820 | 0.000 | -7406.250 | -3170205.820 |
| 2021 | 2 | FEB | 123456 | 20698 | 1234 | USD | 0.000 | -50487.420 | -3220693.240 | 0.000 | -50487.420 | -3220693.240 |
| 2021 | 3 | MAR | 123456 | 20698 | 1234 | USD | 0.000 | -4525.400 | -3225218.640 | 0.000 | -4525.400 | -3225218.640 |
| 2021 | 4 | APR | 123456 | 20698 | 1234 | USD | 0.000 | -1927.850 | -3227146.490 | 0.000 | -1927.850 | -3227146.490 |
| 2021 | 6 | JUN | 123456 | 20698 | 1234 | USD | 0.000 | -55464.080 | -3282610.570 | 0.000 | -55464.080 | -3282610.570 |
| 2021 | 7 | JUL | 123456 | 20698 | 1234 | USD | 0.000 | -143506.760 | -3426117.330 | 0.000 | -143506.760 | -3426117.330 |
| 2021 | 8 | AUG | 123456 | 20698 | 1234 | USD | 0.000 | -142850.050 | -3568967.380 | 0.000 | -142850.050 | -3568967.380 |
| 2022 | 1 | JAN | 123456 | 20698 | 1234 | USD | -3162799.570 | 0.000 | -3162799.570 | -3162799.570 | 0.000 | -3162799.570 |
| 2021 | 1 | JAN | 123456 | 20701 | 1234 | USD | -8538.750 | 0.000 | -8538.750 | -8538.750 | 0.000 | -8538.750 |
| 2021 | 3 | MAR | 123456 | 20701 | 1234 | USD | 0.000 | -681.740 | -9220.490 | 0.000 | -681.740 | -9220.490 |
| 2022 | 1 | JAN | 123456 | 20701 | 1234 | USD | -8538.750 | 0.000 | -8538.750 | -8538.750 | 0.000 | -8538.750 |
| 2021 | 1 | JAN | 123456 | 20706 | 1234 | CAD | -9189.700 | 0.000 | -9189.700 | -12000.000 | 0.000 | -12000.000 |
| 2022 | 1 | JAN | 123456 | 20706 | 1234 | CAD | -9189.700 | 0.000 | -9189.700 | -12000.000 | 0.000 | -12000.000 |
+------+------+--------+--------+-------+------+------+--------------+-------------+--------------+--------------+-------------+--------------+