我有一个表emp_attn (emp_name varchar2(30),attn_dt date)
值,如
select * from emp_attn;
结果如
EMP_NAME ATTN_DT
-------------------- ----------
SAM 02/05/2013
SAM 03/05/2013
SAM 07/05/2013
SAM 08/05/2013
SAM 13/05/2013
SAM 14/05/2013
SAM 17/05/2013
SAM 18/05/2013
SAM 19/05/2013
SAM 20/05/2013
SAM 21/05/2013
SAM 22/05/2013
SAM 23/05/2013
SAM 24/05/2013
SAM 25/05/2013
RAM 01/05/2013
RAM 03/05/2013
RAM 07/05/2013
RAM 08/05/2013
RAM 10/05/2013
RAM 11/05/2013
RAM 14/05/2013
RAM 18/05/2013
RAM 19/05/2013
RAM 20/05/2013
RAM 23/05/2013
RAM 24/05/2013
RAM 25/05/2013
我需要此表中缺少的attn_dt
和name
答案 0 :(得分:0)
您可以使用双表查找缺少的日期。
考虑以下示例
http://sqlfiddle.com/#!4/5cbc7/10
此处测试表有10行。
Select dat from ( SELECT to_char(SYSDATE + LEVEL, 'dd/MM/yyyy') dat
FROM DUAL CONNECT BY LEVEL <= 12 -- You can change as per your date range
) a where dat not in (select dates from test);
上面的select查询返回给出测试表中不可用日期的结果集。
您可以通过在此查询中传递两个参数来获取错过的日期。
SYSDATE - Give your start date
LEVEL (In where condition) - Give as per your date range.