我需要帮助来比较Teradata BTEQ脚本中的2个变量,并根据结果做出决定。我尝试如下:
CREATE VOLATILE TABLE VT_JRNL_MAX_SNAPSHOT_DT,NO LOG,NO FALLBACK
(
MAX_DATE_JRNL DATE FORMAT 'YYYY-MM-DD'
);
INSERT INTO VT_JRNL_MAX_SNAPSHOT_DT
(
MAX_DATE_JRNL
)
SELECT MAX(JOURNAL_SNAPSHOT_DATE) FROM NDW_NRDP_TABLES.NRDP_EWFM_AGENT_SEGMENT_JRNL;
CREATE VOLATILE TABLE VT_SEM_MAX_SNAPSHOT_DT,NO LOG,NO FALLBACK
(
MAX_DATE_SEM DATE FORMAT 'YYYY-MM-DD'
);
INSERT INTO VT_SEM_MAX_SNAPSHOT_DT
(
MAX_DATE_SEM
)
SELECT MAX(JOURNAL_SNAPSHOT_DATE) FROM NDW_NRDP_TABLES.NRDP_EWFM_AGENT_SEGMENT;
.IF MAX_DATE_JRNL >= MAX_DATE_SEM THEN .GoTo DEL_STEP ;
.IF MAX_DATE_JRNL < MAX_DATE_SEM THEN .GoTo EXIT_STEP ;
.LABEL DEL_STEP ;
DEL FROM SEMANTIC;
.LABEL EXIT_STEP ;
INSERT ......;
谢谢,Debasis
BTEQ中一个简单的变量是ACTIVITYCOUNT
有了这个,您就可以形成如下的查询:
SELECT 1
FROM VT_SEM_MAX_SNAPSHOT_DT S
CROSS JOIN VT_JRNL_MAX_SNAPSHOT_DT J
WHERE MAX_DATE_JRNL >= MAX_DATE_SEM
;
.IF ACTIVITYCOUNT < 1 THEN .GOTO EXIT_STEP;
DEL FROM SEMANTIC;
.LABEL EXIT_STEP;
...
可能有更简洁的方法来编写这个查询,以避免交叉连接,甚至完全避免使用volatile表。但这应该作为一个起点。