SQL查询,以查找从今天起的“X”天内是否附加了元素
当我将要素VTP附加到员工时,per_VTP_表的开始日期和结束日期会受到影响,并且会输入付款期开始日期和结束日期。 现在我想知道VTP元素是否在今天起的15天内创建。为此,我创建了一个查询:-SQL查询,以查找从今天起的“X”天内是否附加了元素,sql,oracle,plsql,Sql,Oracle,Plsql,当我将要素VTP附加到员工时,per_VTP_表的开始日期和结束日期会受到影响,并且会输入付款期开始日期和结束日期。 现在我想知道VTP元素是否在今天起的15天内创建。为此,我创建了一个查询:- 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(sysdat
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_日期为2014年11月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 --
现在,如果我将重发日期传递为2014年10月27日,则第一行应显示为2014年10月27日为person_id 1附加的VTP,但它不会出现在per_VTP表格元素中的列中,该列如果与employee@user3809240你能准确地说出什么是你的输入数据,什么是你想看到的输出数据吗?你不能做一个简单的分析吗CRON job每天在15天后创建VTP元素并检查从今天起15天内我必须检查是否创建了VTP元素。
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>