我正在尝试在HANA中编写程序脚本,并且我需要比较2个表的周ID。如果是Week ID1 > Week ID2
,我必须将新记录插入到具有ID2的表中。我尝试了以下逻辑,但这没有用。
这里,IF
内部的逻辑没有执行,但
VAR1 VARCHAR(2);
VAR2 VARCHAR(2);
BEGIN
SELECT MAX(FISCAL_WK) AS VAR1 FROM "XXX"."OUTLOOK_FACTS";
SELECT MAX(FISCAL_WK) AS VAR2 FROM "XXX"."OUTLOOK";
IF :VAR2 > :VAR1 THEN
SELECT MAX(OUTLOOKID) AS TEST FROM "XXX"."OUTLOOK_FACTS";
END IF;
END;
我对此很陌生,所以请帮忙。
答案 0 :(得分:0)
在您的代码示例中,您实际上并未将值分配给:VAR1或:VAR2,因此两个变量都保持为空。
尝试
SELECT MAX(FISCAL_WK) AS VAR1 into :VAR1 FROM "XXX"."OUTLOOK_FACTS";
SELECT MAX(FISCAL_WK) AS VAR2 into :VAR2 FROM "XXX"."OUTLOOK";
IF :VAR2 > :VAR1 THEN
SELECT MAX(OUTLOOKID) AS TEST FROM "XXX"."OUTLOOK_FACTS";
END IF;
但是,您也可以将所有内容打包在一个SQL语句中。但那是你的选择:)
答案 1 :(得分:0)
对于该插页,您不需要任何程序代码。 你可以用直接的SQL来做到这一点:
select case
when max_fisc > max_fisc_fact then
max_id_fact
else
-1
end as VALUE_TO_BE_INSERTED
from (
select max(o.fiscal_wk) as max_fisc, max(o.outlookid) as max_id
, max(f.fiscal_wk) as max_fisc_fact, max(f.outlookid) as max_id_fact
from outlook o
cross join outlook_facts f);
只需将此SQL打包到INSERT语句中即可完成。 - 拉尔斯