我有一张每日价格表,如下所示,在这个SQLfiddle 中。每条记录都与 ShareClassID、货币、日期和金额相关联。在我的真实场景中,我可以拥有至少 10 年的每日价格。
下面的查询正在对所有记录进行计算。对于给定的日期,我只想对过去 3 年进行计算。我不知道该怎么做。
添加AND valueDate >= DATEADD(yy, -3, GETDATE())
到WHERE
条款并没有给我我需要的东西:我需要从当前valueDate
记录执行 3 年计算。在每一行上,我想从当前行到 -3 年执行计算。
CREATE TABLE [dbo].ShareClassData2(
valueDate [date] NOT NULL,
NAVLocal [numeric](26, 8) NULL,
currency_fk [bigint] NOT NULL,
vehicleShareClassGroup_fk [bigint] NOT NULL,
importTransactionID [bigint] NOT NULL
)
INSERT INTO [dbo].[ShareClassData2]( [valueDate] ,[NAVLocal],[currency_fk],[vehicleShareClassGroup_fk],[importTransactionID]) VALUES ( '2014-09-29',113.49,12,22370,1 );
INSERT INTO [dbo].[ShareClassData2]( [valueDate] ,[NAVLocal],[currency_fk],[vehicleShareClassGroup_fk],[importTransactionID]) VALUES ( '2014-09-30',113.75,12,22370,1 );
INSERT INTO [dbo].[ShareClassData2]( [valueDate] ,[NAVLocal],[currency_fk],[vehicleShareClassGroup_fk],[importTransactionID]) …
Run Code Online (Sandbox Code Playgroud)