Comparison of project budgets against actual costs and commitments with variance analysis
SELECT
p.PROJECT_NUMBER,
p.PROJECT_NAME,
p.PROJECT_STATUS_CODE,
p.START_DATE,
p.COMPLETION_DATE,
p.PROJECT_MANAGER_PERSON_ID,
pm.FULL_NAME AS PROJECT_MANAGER_NAME,
o.NAME AS ORG_NAME,
b.BUDGET_TYPE_CODE,
b.BUDGET_VERSION_ID,
b.BASELINED_DATE,
SUM(bl.BUDGET_AMOUNT) AS TOTAL_BUDGET_AMOUNT,
SUM(NVL(a.ACTUAL_COST, 0)) AS TOTAL_ACTUAL_COST,
SUM(NVL(c.COMMITMENT_AMOUNT, 0)) AS TOTAL_COMMITMENT_AMOUNT,
SUM(bl.BUDGET_AMOUNT) - SUM(NVL(a.ACTUAL_COST, 0)) - SUM(NVL(c.COMMITMENT_AMOUNT, 0)) AS REMAINING_BUDGET,
ROUND(((SUM(NVL(a.ACTUAL_COST, 0)) + SUM(NVL(c.COMMITMENT_AMOUNT, 0))) /
NULLIF(SUM(bl.BUDGET_AMOUNT), 0)) * 100, 2) AS BUDGET_UTILIZATION_PCT,
p.CREATED_BY,
p.CREATION_DATE,
p.LAST_UPDATE_DATE
FROM PA_PROJECTS_ALL p
JOIN PA_BUDGETS b ON p.PROJECT_ID = b.PROJECT_ID
JOIN PA_BUDGET_LINES bl ON b.BUDGET_VERSION_ID = bl.BUDGET_VERSION_ID
JOIN HR_ORGANIZATION_UNITS o ON p.CARRYING_OUT_ORGANIZATION_ID = o.ORGANIZATION_ID
LEFT JOIN PER_PEOPLE_F pm ON p.PROJECT_MANAGER_PERSON_ID = pm.PERSON_ID
AND TRUNC(SYSDATE) BETWEEN pm.EFFECTIVE_START_DATE AND pm.EFFECTIVE_END_DATE
LEFT JOIN (
SELECT
PROJECT_ID,
SUM(ACCRUAL_FLAG * NVL(DENOM_BURDENED_COST, 0)) AS ACTUAL_COST
FROM PA_EXPENDITURE_ITEMS_ALL
WHERE COST_DISTRIBUTED_FLAG = 'Y'
GROUP BY PROJECT_ID
) a ON p.PROJECT_ID = a.PROJECT_ID
LEFT JOIN (
SELECT
PROJECT_ID,
SUM(NVL(COMMITTED_COST, 0)) AS COMMITMENT_AMOUNT
FROM PA_COMMITMENT_TXNS
WHERE COMMITMENT_STATUS = 'A'
GROUP BY PROJECT_ID
) c ON p.PROJECT_ID = c.PROJECT_ID
WHERE b.CURRENT_FLAG = 'Y'
AND b.BUDGET_STATUS_CODE = 'B'
AND (:project_status IS NULL OR p.PROJECT_STATUS_CODE = :project_status)
AND (:org_id IS NULL OR p.CARRYING_OUT_ORGANIZATION_ID = :org_id)
AND (:project_manager_id IS NULL OR p.PROJECT_MANAGER_PERSON_ID = :project_manager_id)
AND (:start_date_from IS NULL OR p.START_DATE >= :start_date_from)
AND (:start_date_to IS NULL OR p.START_DATE <= :start_date_to)
GROUP BY p.PROJECT_NUMBER, p.PROJECT_NAME, p.PROJECT_STATUS_CODE, p.START_DATE,
p.COMPLETION_DATE, p.PROJECT_MANAGER_PERSON_ID, pm.FULL_NAME, o.NAME,
b.BUDGET_TYPE_CODE, b.BUDGET_VERSION_ID, b.BASELINED_DATE,
p.CREATED_BY, p.CREATION_DATE, p.LAST_UPDATE_DATE
ORDER BY p.PROJECT_NUMBER
Project number
Project name
Project status
Project start date
Project completion date
Project manager name
Organization name
Total budget amount
Total actual cost
Total commitments
Remaining budget
Budget utilization percentage
Project status filter
Organization ID
Project manager person ID
Project start date from
Project start date to
Projects
Project Financial Management
5001
1/29/2024, 12:30:00 PM
Project resource usage analysis
Financial trial balance
Employee information