2014-10-31 67 views
0

当我将一个元素VTP附加到员工时,per_vtp_table的start_date和end_date受到影响,并且付款期间开始日期和结束日期被输入。 现在我想知道VTP元素是否在距离今天15天内被创建。为了这个,我已经创造了一个查询: -用于查询元素是否在今天'X'天内附加的SQL查询

Select employee_no, 
start_date, 
end_date 
from 
peR_people pp, 
per_vtp_table pvt 
where pvt.person_id=pp.person_id 
and pvt.start_date between trunc(sysdate)and trunc(sysdate)-15 

但此查询例如下面的数据存在

per_vtp_table 
------------- 
start_date end_date  person_id Element 
12-Oct-2014 28-Oct-2014 1   Vtp 
01-Nov-2014 15-nov-2014 1    -- 

per_people 
---------- 
person_id employee_no 
1   67 

现在从15今日天,我要检查VTP元素是否创建或没有。 2014年10月15日,我与该员工联系在一起,但pvt.start_date是2014年12月12日,这就是为什么我所提出的查询没有采取。请帮助......以便我可以对此要求进行全面的证明查询。

此条件是否正确?

and trunc(sysdate)-15 between pvt.start_date and pvt.end_date 

此外,我需要的是,如果我明确地通过任何日期,应该在该日期之后提取雇员的细节。我该怎么办?下面的查询不工作:

Select employee_no, 
start_date, 
end_date 
from 
peR_people pp, 
per_vtp_table pvt 
where pvt.person_id=pp.person_id 
and pvt.start_date >:p_resend_date; 

per_vtp_table 
------------- 
start_date end_date  person_id Element 
12-Oct-2014 28-Oct-2014 1   Vtp 
01-Nov-2014 15-nov-2014 1    -- 

现在,如果我通过重发日期为27月 - 2014年第1行应该拿出作为VTP附着于为person_id 1月27日-OCT-2014,但它不是出现

+0

什么是“VTP”? – nop77svk 2014-10-31 09:59:02

+0

per_vtp表(元素)中的一列,如果在雇员身上附加,那么它将具有值 – user3809240 2014-10-31 10:03:00

+0

@ user3809240您能准确地告诉您输入的数据是什么以及您希望看到的输出内容是什么? – SriniV 2014-10-31 10:05:49

回答

0
SQL> WITH 
    2 per_vtp_table AS(
    3 SELECT TO_DATE('12-Oct-2014', 'dd-mon-yyyy') start_date, 
    4   TO_DATE('28-Oct-2014', 'dd-mon-yyyy') end_date, 
    5   1 person_id, 'Vtp' ELEMENT FROM dual UNION ALL 
    6 SELECT TO_DATE('01-Nov-2014', 'dd-mon-yyyy') start_date, 
    7   TO_DATE('15-nov-2014', 'dd-mon-yyyy') end_date, 
    8   1 person_id, NULL ELEMENT FROM dual), 
    9 per_people AS(
10 SELECT 1 person_id, 67 employee_no FROM dual) 
11 SELECT 'VTP was attached for person_id' 
12 || pp.person_id 
13 ||' on ' 
14 || start_date msg, 
15 employee_no, 
16 start_date, 
17 end_date 
18 FROM peR_people pp, 
19 per_vtp_table pvt 
20 WHERE pvt.person_id=pp.person_id 
21 AND pvt.start_date < to_date('27-Oct-2014', 'dd-mon-yyyy') 
22/

MSG             EMPLOYEE_NO START_DAT END_DATE 
-------------------------------------------- -------------------- --------- --------- 
VTP was attached for person_id1 on 12-OCT-14     67 12-OCT-14 28-OCT-14 

SQL>