0% found this document useful (0 votes)
155 views4 pages

Attendance Query

The document is an SQL query that selects employee attendance data from various tables for a given date range, including details like name, designation, attendance status, scheduled and actual in/out times. It joins data from tables tracking payroll, employees, assignments, attendance, schedules and timecards. The query returns the selected data ordered by start date.

Uploaded by

maksud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
155 views4 pages

Attendance Query

The document is an SQL query that selects employee attendance data from various tables for a given date range, including details like name, designation, attendance status, scheduled and actual in/out times. It joins data from tables tracking payroll, employees, assignments, attendance, schedules and timecards. The query returns the selected data ordered by start date.

Uploaded by

maksud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

------------parameters

--date1 (varchar2) 06/28/2021


--emp_no=177
-------------------------

SELECT *
FROM ( SELECT payroll,
org,
emp_no,
emp_name,
DESIGNATION,
hire_date,
TO_CHAR (start_date, 'Dy') attn_day,
TO_CHAR (start_date, 'dd-Mon-yyyy') attn_date,
start_date,
MNJ_GET_EMP_LATE_COUNT(assignment_id,start_date,start_date)
Late_count,
in_time
NH_IN,
out_time
NH_OUT,
APPS.XXMJ_EMP_ATTN_MAC (PROX_CARD, start_date, 'IN')
IN_MAC,
APPS.XXMJ_EMP_ATTN_MAC (PROX_CARD, TRUNC (start_date), 'OUT')

OUT_MAC,
em_cat,
assignment_id,
SCHEDULED_TIME ST,
status
FROM (select a.*,
--
a.company,a.shift,a.dp,a.sc,a.ssc,a.line,a.employee_number,a.designation,a.em_cat,a
.legacy_code,a.full_name,a.hire_date,a.grade,a.assignment_id,a.address,a.shift,a.at
tn_date,a.scheduled_time
case when a.shift like upper('%NIGHT%')then max(b.in_time) else min(b.in_time) end
in_time,max(b.out_time) out_time
,
CASE
WHEN b.ELEMENT_NAME = 'Normal Hours OTL'
THEN
'Present'
ELSE
b.ELEMENT_NAME
END status
from
(select ppf.payroll_name payroll,
hou.name org
,PAPF.EMPLOYEE_NUMBER emp_no,
paaf.ass_attribute2 PROX_CARD,
(SELECT distinct PPT.SEGMENT1||'.'||PPT.SEGMENT2
FROM per_all_positions pep,
PER_POSITION_DEFINITIONS PPT
WHERE pep.POSITION_DEFINITION_ID = PPT.POSITION_DEFINITION_ID
AND PEP.POSITION_ID = PAAF.POSITION_ID
AND PPT.ENABLED_FLAG = 'Y') DESIGNATION,
case when paaf.EMPLOYMENT_CATEGORY ='ASS_RG' then 'Regular' when
paaf.EMPLOYMENT_CATEGORY = 'ASS_ST' then 'Staff'when paaf.EMPLOYMENT_CATEGORY =
'ASS_LOC' then 'Local'else 'Expat'end em_cat,
PAPF.PERSON_ID,
PAPF.FULL_NAME emp_name,
(SELECT HS.NAME FROM
HXT.HXT_SHIFTS HS,
HXT.HXT_WORK_SHIFTS HWS,
HXT.HXT_ROTATION_SCHEDULES HRS,
HXT.HXT_ADD_ASSIGN_INFO_F HASI
WHERE HS.ID = HWS.SHT_ID
AND HWS.TWS_ID = HRS.TWS_ID
AND HRS.RTP_ID = HASI.ROTATION_PLAN
AND HASI.ASSIGNMENT_ID = PAAF.ASSIGNMENT_ID
AND HWS.WEEK_DAY = TO_CHAR (MC.DATELIST, 'DY')
AND MC.DATELIST BETWEEN trunc(HASI.EFFECTIVE_START_DATE) AND
trunc(HASI.EFFECTIVE_END_DATE)
AND HRS.START_DATE = (SELECT MAX(HRSA1.START_DATE) FROM
HXT_ROTATION_SCHEDULES HRSA1
WHERE
HRSA1.START_DATE <= TRUNC(MC.DATELIST)
AND HRSA1.RTP_ID = HRS.RTP_ID )) SHIFT,
(SELECT TO_CHAR (
TO_DATE (LPAD (HS.STANDARD_START, 4, 0),
'HH24:MI:SS'),
'HH24:MI') || '-'|| TO_CHAR (
TO_DATE (LPAD (HS.STANDARD_STOP, 4, 0),
'HH24:MI:SS'),
'HH24:MI') FROM
HXT.HXT_SHIFTS HS,
HXT.HXT_WORK_SHIFTS HWS,
HXT.HXT_ROTATION_SCHEDULES HRS,
HXT.HXT_ADD_ASSIGN_INFO_F HASI
WHERE HS.ID = HWS.SHT_ID
AND HWS.TWS_ID = HRS.TWS_ID
AND HRS.RTP_ID = HASI.ROTATION_PLAN
AND HASI.ASSIGNMENT_ID = PAAF.ASSIGNMENT_ID
AND HWS.WEEK_DAY = TO_CHAR (MC.DATELIST, 'DY')
AND MC.DATELIST BETWEEN trunc(HASI.EFFECTIVE_START_DATE) AND
trunc(HASI.EFFECTIVE_END_DATE)
AND HRS.START_DATE = (SELECT MAX(HRSA1.START_DATE) FROM
HXT_ROTATION_SCHEDULES HRSA1
WHERE
HRSA1.START_DATE <= TRUNC(MC.DATELIST)
AND HRSA1.RTP_ID = HRS.RTP_ID )) SCHEDULED_TIME,
PAPF.ORIGINAL_DATE_OF_HIRE HIRE_DATE,
to_char(mc.datelist,'DY')||','|| MC.DATELIST ATTN_DATE1,
MC.DATELIST ATTN_DATE,
MC.DATELIST START_DATE,
pgd.segment2 grade,
PAAF.ASSIGNMENT_ID,
-- to_char(htbb.STOP_TIME, 'HH24:MI') OUT_TIME,
-- to_char(htbb.START_TIME, 'HH24:MI')IN_TIME,
HLA.ADDRESS_LINE_1||','||HLA.ADDRESS_LINE_2||','||HLA.ADDRESS_LINE_3 ||','||
HLA.TOWN_OR_CITY Address
from hr_organization_units HOU,
HR_LOCATIONS_ALL HLA,
PER_ALL_PEOPLE_F PAPF,
per_all_assignments_f paaf,
per_grades pg,
per_grade_definitions pgd,
pay_payrolls_f ppf,
-- HXC.hxc_time_building_blocks HTBB,
(SELECT * FROM MJ_CALENDER WHERE DATELIST<=TRUNC(SYSDATE)) MC
where PAPF.PERSON_ID = PAAF.PERSON_ID
AND PAAF.ORGANIZATION_ID = HOU.ORGANIZATION_ID
AND HLA.LOCATION_ID = HOU.LOCATION_ID
AND papf.PERSON_ID = paaf.PERSON_ID
AND paaf.grade_id = pg.grade_id
AND paaf.payroll_id = ppf.payroll_id
-- and htbb.RESOURCE_ID = PAAF.PERSON_ID
-- and trunc(htbb.START_TIME(+))=trunc(MC.DATELIST)
-- and htbb.scope = 'DETAIL'
AND pg.grade_definition_id = pgd.grade_definition_id
AND paaf.payroll_id =(select paaf1.payroll_id from per_all_assignments_f paaf1
where paaf.assignment_id = paaf1.assignment_id and LAST_DAY
( TO_DATE(:DATE1,'MM/DD/YYYY')) BETWEEN PAAF1.EFFECTIVE_START_DATE AND
PAAF1.EFFECTIVE_END_DATE)
AND MC.DATELIST BETWEEN TRUNC ( TO_DATE(:DATE1,'MM/DD/YYYY'), 'MM') AND LAST_DAY
( TO_DATE(:DATE1,'MM/DD/YYYY'))
AND --LAST_DAY ( TO_DATE(:DATE1,'MM/DD/YYYY'))
MC.DATELIST BETWEEN PAAF.EFFECTIVE_START_DATE AND PAAF.EFFECTIVE_END_DATE
AND PAPF.EMPLOYEE_NUMBER = NVL(:emp_no,PAPF.EMPLOYEE_NUMBER)
-- AND PAPF.EMPLOYEE_NUMBER IN
('000227','000228','000229','000231','000232','000233')
AND LAST_DAY ( TO_DATE(:DATE1,'MM/DD/YYYY')) BETWEEN PAPF.EFFECTIVE_START_DATE AND
PAPF.EFFECTIVE_END_DATE
order by start_date)a,
(select d.*
from
( select petf.element_name
element_name,hrttv.START_DATE,TO_CHAR(HTDV.DETAIL_START_TIME,'HH24:MI')
IN_TIME,TO_CHAR(HTDV.DETAIL_STOP_TIME,'HH24:MI') OUT_TIME
from hxc_resource_total_time_v hrttv,
hxc_timecard_details_v htdv,
pay_element_types_f petf,
PER_ALL_PEOPLE_F PAPF,
per_all_assignments_f paaf
where
PAPF.PERSON_ID = PAAF.PERSON_ID
and htdv.detail_resource_id = paaf.PERSON_ID
AND hrttv.detail_id = htdv.detail_timecard_id
AND hrttv.resource_id = htdv.detail_resource_id
AND htdv.detail_bld_blk_info_type_id = 1
AND PAPF.EMPLOYEE_NUMBER = :emp_no
AND paaf.payroll_id =(select paaf1.payroll_id from per_all_assignments_f
paaf1 where paaf.assignment_id = paaf1.assignment_id and LAST_DAY
( TO_DATE(:DATE1,'MM/DD/YYYY')) BETWEEN PAAF1.EFFECTIVE_START_DATE AND
PAAF1.EFFECTIVE_END_DATE) --:payroll_id
AND petf.element_type_id = SUBSTR (htdv.detail_attribute_category, 11, 13)
and hrttv.START_DATE BETWEEN TRUNC ( TO_DATE(:DATE1,'MM/DD/YYYY'), 'MM') AND
LAST_DAY ( TO_DATE(:DATE1,'MM/DD/YYYY'))
AND sysdate BETWEEN PAAF.EFFECTIVE_START_DATE
AND PAAF.EFFECTIVE_END_DATE
AND sysdate BETWEEN PAPF.EFFECTIVE_START_DATE
AND PAPF.EFFECTIVE_END_DATE
--group by hrttv.START_DATE
) d
)b
where
a.attn_date=b.start_date(+)
group by
b.ELEMENT_NAME,a.payroll,a.shift,a.org,a.emp_no,a.designation,a.prox_card,a.em_cat,
a.emp_name,a.hire_date,a.start_date,a.PERSON_ID,a.grade,a.assignment_id,a.address,a
.shift,a.attn_date,a.attn_date1,a.scheduled_time
order by a.attn_date
)
ORDER BY
start_date) OTL

You might also like