我使用下面的WHERE子句只加载上一个会计年度加上一年至今的记录。
在没有WHERE clause
的情况下运行,1mil记录需要30秒。对于WHERE子句,我不得不在2小时后停止它。
你能分享你的想法吗
WHERE
([schema].[table].[DATE] >= DATEADD
(yy, - 1, DATEADD
(MONTH,(MONTH(GETDATE()) - 1) / 6 * 12 - 6,
CAST(CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME)
)
)
)
Declare @PastFiscalYear Date
Set @PastFiscalYear= DATEADD(yy, - 1, DATEADD(MONTH,(MONTH(GETDATE()) - 1) / 6 * 12 - 6,CAST(CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME)))
WHERE
([schema].[table].[DATE] >= @PastFiscalYear )
你能试试这个吗
这将带回自上一会计年度开始日期以来的数据。只要把-3改成你的财政年度抵消额就行了。-3是10月份的。
[schema].[table].[DATE] >= DATEADD(mm,-3,DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())), 0))