2014-10-31 69 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>