【发布时间】:2017-10-07 14:20:52
【问题描述】:
我来自报告背景,第一次从 Teradata 构建多维数据集。我正在尝试由一个主 SP 填写我的事实表。主 SP 将调用子 SP。 Child SP 会是这样的——GetData(201704)。我必须在过去 13 个月内调用此 SP(可配置)。我创建了一个表格,用于获取带有 rownum 的月份,这将给我以下结果。
月份行号
201704 1
201703 2
201702 3
请在下面找到主 SP 的逻辑。如果有人可以帮助我语法。
创建 MasterSP(MonthCount)
开始
声明 Count 整数;
声明周期整数;
SET Count=MonthCount; --13 个月
循环开始 如果(我
SELECT Month From TimePeriod WHERE RowNum=Count
设置 获取数据(月)
计数=计数+1
循环结束
结束
【问题讨论】:
-
创建过程的语法是:
CREATE PROCEDURE [databasename.]procedurename。参数以 ` [ IN ] | 的形式给出输出 | INOUT } param-name data-type. Loop isLOOP ... END LOOP;` If isIF .... THEN .... END IF;Set isSET target = source;你确实声明了 Period 但没有使用它。你没有声明I。 END 需要关闭;。SET GetData(Month)应该是CALL GetData(Month)。如果您使用保留字Count作为变量名,则必须将其括在双引号中。 -
你检查了 sql 语句
group by rollup或group by cube吗?
标签: sql loops stored-procedures teradata