DB2 Temp Table 未返回结果
DB2 Temp Table not returning Results
我正在编写一个程序,用于向证书将在未来 3 个月内到期的员工发送电子邮件。由于一些员工已经更新了他们的认证,我正在创建 "Good Ids" 的临时 table,拥有至少三个月不会过期的认证的员工。
为此,我正在使用:
CREATE GLOBAL TEMPORARY TABLE GOOD_IDS(
INTERNAL_EMPL_ID VARCHAR(10)
) ON COMMIT PRESERVE ROWS;
INSERT INTO GOOD_IDS (
SELECT DISTINCT (INTERNAL_EMPL_ID)
FROM LICENSE
WHERE LICENSE_TYP_CD IN ('STD') AND EXPIRATION_DT >= CURRENT DATE + 3 months);
SELECT * FROM GOOD_IDS
我自己 运行 第二个 select 并且可以确认它 returns ~3000 行。但是,当我 运行 所有三个时,我得到零行。我错过了什么?
好的。我重写了 SQL 以使用 WITH 语句。
所以现在看起来像这样
WITH
GOOD_ID_LIST AS (SELECT DISTINCT (INTERNAL_EMPL_ID) FROM LICENSE WHERE LICENSE_TYP_CD IN ('STD') AND EXPIRATION_DT >= CURRENT DATE + 3 months)
SELECT ...
我正在编写一个程序,用于向证书将在未来 3 个月内到期的员工发送电子邮件。由于一些员工已经更新了他们的认证,我正在创建 "Good Ids" 的临时 table,拥有至少三个月不会过期的认证的员工。
为此,我正在使用:
CREATE GLOBAL TEMPORARY TABLE GOOD_IDS(
INTERNAL_EMPL_ID VARCHAR(10)
) ON COMMIT PRESERVE ROWS;
INSERT INTO GOOD_IDS (
SELECT DISTINCT (INTERNAL_EMPL_ID)
FROM LICENSE
WHERE LICENSE_TYP_CD IN ('STD') AND EXPIRATION_DT >= CURRENT DATE + 3 months);
SELECT * FROM GOOD_IDS
我自己 运行 第二个 select 并且可以确认它 returns ~3000 行。但是,当我 运行 所有三个时,我得到零行。我错过了什么?
好的。我重写了 SQL 以使用 WITH 语句。
所以现在看起来像这样
WITH
GOOD_ID_LIST AS (SELECT DISTINCT (INTERNAL_EMPL_ID) FROM LICENSE WHERE LICENSE_TYP_CD IN ('STD') AND EXPIRATION_DT >= CURRENT DATE + 3 months)
SELECT ...