2016-06-21 3 views
1

Я пишу программу для отправки по электронной почте сотрудников, срок действия которых истекает в течение следующих 3 месяцев. Поскольку некоторые сотрудники уже возобновили сертификацию, я создаю временную таблицу «Хорошие идентификаторы», сотрудники, которые имеют сертификат, срок действия которого истекает не менее трех месяцев.DB2 Temp 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 

Я запустить второй выбор на это я и могу подтвердить, что он возвращает ~ 3000 строк. Однако, когда я запускаю все три, я получаю нулевые строки. Что мне не хватает?

+0

Удалите скобки, то есть ли 'INSERT INTO GOOD_IDS SELECT DISTINCT ...'? – jarlh

+0

Нет. Удаление скобок на вставке не исправило. – Kalrunoor

ответ

0

ОК. Я переписал 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 ...