Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在Teradata中编写一个循环_Loops_Teradata_Teradata Sql Assistant - Fatal编程技术网

Loops 在Teradata中编写一个循环

Loops 在Teradata中编写一个循环,loops,teradata,teradata-sql-assistant,Loops,Teradata,Teradata Sql Assistant,在TERADATA中执行某些宏时遇到问题。我有一个大宏,包括3个其他宏。看起来是这样的: create MACRO D_RISK_SANDBOX.saldo_pagos(fecha_desde date, fecha_hasta date, fecha_fin_desde date, fecha_fin_hasta date) as ( exec D_RISK_SANDBOX.saldo ( :fecha_desde,:fecha_hasta); exec D_RISK_SANDBOX.pa

在TERADATA中执行某些宏时遇到问题。我有一个大宏,包括3个其他宏。看起来是这样的:

create MACRO D_RISK_SANDBOX.saldo_pagos(fecha_desde date, fecha_hasta date, fecha_fin_desde date, fecha_fin_hasta date)
as
(
 exec D_RISK_SANDBOX.saldo ( :fecha_desde,:fecha_hasta);
 exec D_RISK_SANDBOX.pagos_cuotas( :fecha_desde,:fecha_hasta,:fecha_fin_desde,:fecha_fin_hasta);
 exec D_RISK_SANDBOX.pagos_refin( :fecha_desde,:fecha_hasta,:fecha_fin_desde,:fecha_fin_hasta);
)

exec D_RISK_SANDBOX.saldo_pagos('2016/08/01','2016/08/31','2016/09/01','2019/08/31')
今天,我为每个月执行大宏(D_RISK_SANDBOX.saldo_pagos)。做一个循环比较容易,但我不知道怎么做。我一直在读有关商店程序的书,但我不知道如何循环日期。 日期可以在一个数组中,因此我可以有如下内容: (第一列是日期,其他列是每个“小”宏的结果)


常规日期循环将如下所示:

CREATE PROCEDURE proc_1 (IN date_1 date, IN date_2 DATE)
BEGIN
DECLARE DateCnt DATE;
  SET DateCnt = date_1;
WHILE DateCnt <= date_2 DO
BEGIN 
  set DateCnt = DateCnt + 1;
END ;
END WHILE;
END;

我建议你问问自己是否真的需要一个循环。SQL通常用于集合处理。
call proc_1('2020-01-01','2020-01-07');