Monday, January 18, 2016

Oracle Labor Distributions queries

Change the query as per the business requirements.
----------------------------------------------------------------------------------------------------------------------------
Query to find duplicate schedule lines based on Project ID, Task ID, Award ID, Expenditure Type, Schedule Start Date, Schedule End Date, Assignment Number and Row id in PSP SCHEDULE LINES

SELECT *
FROM apps.psp_schedule_lines psl,
           per_all_assignments_f paaf,
           psp_schedule_hierarchy psh
     WHERE psl.project_id = p_project_id
       AND psl.task_id = p_task_id
       AND psl.award_id = p_award_id
       AND psl.expenditure_type = p_expenditure_type
       AND paaf.assignment_id = psh.assignment_id
       AND psl.schedule_hierarchy_id = psh.schedule_hierarchy_id
       AND paaf.assignment_number = p_assignment_num
       AND rowidtochar(psl.ROWID) = NVL(p_rowid,'XXX')
       AND TO_DATE (p_schedule_start_date, 'DD-MON-YYYY') = psl.schedule_begin_date
       AND to_date(psl.schedule_end_date,'DD-MON-YYYY')  = psl.schedule_end_date
       AND TRUNC(SYSDATE) between paaf.effective_start_date and paaf.effective_end_date;
----------------------------------------------------------------------------------------------------------------------------
Query to find duplicate schedule lines based on Schedule Start Date, Schedule End Date and Assignment Number
SELECT distinct 1
      FROM apps.psp_schedule_lines psl,
           per_all_assignments_f paaf,
           psp_schedule_hierarchy psh
     WHERE paaf.assignment_id = psh.assignment_id
       AND psl.schedule_hierarchy_id = psh.schedule_hierarchy_id
       AND paaf.assignment_number = p_assignment_num
      AND (   psl.schedule_end_date BETWEEN TO_DATE (p_schedule_start_date,
                                                      'DD-MON-YYYY'
                                                     )
                                         AND TO_DATE (p_sch_end_date,
                                                      'DD-MON-YYYY'
                                                     )
            OR psl.schedule_begin_date BETWEEN TO_DATE (p_schedule_start_date,
                                                        'DD-MON-YYYY'
                                                       )
                                           AND TO_DATE (p_sch_end_date,
                                                        'DD-MON-YYYY'
                                                       )
            OR (TO_DATE (p_schedule_start_date, 'DD-MON-YYYY')
                  BETWEEN psl.schedule_begin_date
                      AND psl.schedule_end_date)
            )
           and TRUNC(SYSDATE) between paaf.effective_start_date and paaf.effective_end_date;
----------------------------------------------------------------------------------------------------------------------------

2 comments: