【问题标题】:DB2 Temp Table not returning ResultsDB2 临时表未返回结果
【发布时间】:2016-06-21 13:56:39
【问题描述】:

我正在编写一个程序,用于向证书设置在未来 3 个月内到期的员工发送电子邮件。由于一些员工已经更新了他们的认证,我正在创建一个“Good Ids”临时表,即拥有至少三个月不会过期的认证的员工。

为此,我正在使用:

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

我自己运行了第二个选择,并且可以确认它返回了大约 3000 行。但是,当我运行所有三个时,我得到零行。我错过了什么?

【问题讨论】:

  • 去掉括号,即做INSERT INTO GOOD_IDS SELECT DISTINCT ...?
  • 不。删除插入上的括号并没有解决它。

标签: sql db2 temp-tables


【解决方案1】:

好的。我改写了 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 ...

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多