【发布时间】:2016-04-21 13:14:23
【问题描述】:
WITH CTE AS
(SELECT
F.PARTITION_KEY,
(LAST_DAY(TO_DATE((PARTITION_KEY)||'01','YYYYMMDD'))) AS VALID_DATE,
F.EMP_NUM,
F.EMP_KEY,
D.EMP_ENTERED_DATE
FROM F_EMP_ERROR, D_EMP D
WHERE
F.EMP_NUM = D.EMP_NUM
AND F.PARTITION_KEY = 201603
and d.CONTRACT_PERIOD = 'Y')
SELECT COUNT(DISTINCT EMP_NUM) FROM CTE WHERE EMP_ENTERED_DATE > VALID_DATE;
如果我对特定月份进行硬编码,我的查询可以正常工作。如何将其转换为一个过程,当我输入年份时,它应该返回该年所有月份的记录数。
【问题讨论】:
标签: sql oracle plsql procedure