Sql DB2临时表不返回结果

Sql DB2临时表不返回结果,sql,db2,temp-tables,Sql,Db2,Temp Tables,我正在写一个程序,向那些证书将在未来3个月内到期的员工发送电子邮件。由于一些员工已经更新了他们的证书,我正在创建一个“良好ID”临时表,这些员工的证书至少三个月内不会过期 为此,我正在使用: CREATE GLOBAL TEMPORARY TABLE GOOD_IDS( INTERNAL_EMPL_ID VARCHAR(10) ) ON COMMIT PRESERVE ROWS; INSERT INTO GOOD_IDS ( SELECT DISTINCT (INTERNAL

我正在写一个程序,向那些证书将在未来3个月内到期的员工发送电子邮件。由于一些员工已经更新了他们的证书,我正在创建一个“良好ID”临时表,这些员工的证书至少三个月内不会过期

为此,我正在使用:

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,可以确认它返回了约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 ...

嗯。我重写了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 ...

删除括号,即插入到正确的ID中选择不同的…?否。删除插入项上的括号无法解决此问题。请删除括号,即执行
插入到正确的\u id选择不同的…
?否。删除插入项上的括号无法修复它。