SQL Server 2016を使用して、@Year
と@FinPeriod
を使用して期間とトランザクションを照合するFinance Deptの膨大なクエリがあります。また、レポートのために、通常、ストアドプロシージャに単一の値を渡します。しかし、今では、通常はその場で生成されるデータを基になるテーブルに移入する必要があります。SQL LOOPストアドプロシージャのパラメータとしてTemp Tableから値を渡す
誰も助けてくれるループがありますか?私は年の値の列とその年のそれぞれのためのfinperiodとの一時テーブルを持っています。私はこのテーブルをループすることを目指しています。年と期間の両方をストアドプロシージャに渡し、すべてが実行されるまで順番に渡します。
ストアドプロシージャの要素は私にとっては問題ありません。ループ/パーツを動作させるだけの助けになります。
これまでのところ私が持っている:
declare @fiscalyearid numeric(9)
declare @FiscalYear numeric(9)
declare @FiscalMonthOfYear numeric(9)
declare @Year numeric(9)
declare @FinPeriod numeric(9)
if object_id('tempdb..#dateloop','u') is not null
drop table #dateloop
select distinct
identity(int,1,1) as ID,
FiscalYear_int, FiscalMonthOfYear
into
#dateloop
from
[DW].[DDS].[dimDate]
where
FiscalYear_int = '2018'
DECLARE C CURSOR LOCAL FAST_FORWARD FOR --
SELECT
ID, FiscalYear_int, FiscalMonthOfYear
FROM
#dateloop;
OPEN C;
FETCH C INTO @FiscalYear, @FiscalMonthOfYear;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC [dbo].[Origen_Reporting->SSRS_Capex_Monitoring_Report_Expenditure] @Year, @FinPeriod
FETCH C INTO @Year,@FinPeriod
END
CLOSE C;
DEALLOCATE C;
任意のヒントは素晴らしいだろう。ありがとうございます
あなたは(何年持つ)テーブル全体に参加することができ、これはあなたが – TheGameiswar