POM



    Scenarios:
---1. Display the client names who do not have a fax number

SELECT CLIENT_NAME
FROM CLIENT_2
WHERE FAX IS NULL;

--2. Display the clients that have more than one project

SELECT CLIENT_ID,COUNT(PROJECT_ID)
FROM ASSIGNMENT_2
GROUP BY CLIENT_ID
HAVING COUNT(PROJECT_ID) >1;

--3. Display the project titles and their expected durations in years for all the projects that are still not closed

SELECT  TITLE
FROM PROJECT_2
WHERE TO_CHAR(EXPECTED_END_DATE,'YYYY') = TO_CHAR(SYSDATE,'YYYY');

--4. Display the no of women resources from India

SELECT COUNT(RES_ID)
FROM RESOURCE_2
WHERE GENDER = 'FEMALE'
AND COUNTRY ='INDIA';


--5. Display the resource name and no of projects under which they are working as on today

SELECT  R.RES_NAME,COUNT(A.PROJECT_ID)
FROM ASSIGNMENT_2 A,RESOURCE_2 R,PROJECT_2 P
WHERE R.RES_ID = A.RES_ID
AND P.PROJECT_ID = A.PROJECT_ID
AND A.ASSIGNED_DATE  BETWEEN P.START_DATE AND SYSDATE
GROUP BY   R.RES_NAME
HAVING COUNT(A.PROJECT_ID)>1;


6. Display resource names who are catering to more than one client currently

SELECT RES_NAME
FROM RESOURCE_2
WHERE RES_ID IN (
SELECT  RES_ID
FROM ASSIGNMENT_2
WHERE TO_CHAR(ASSIGNED_DATE,'MOM-YYYY') = TO_CHAR(SYSDATE,'MON-YYYY')
GROUP BY RES_ID
HAVING COUNT(CLIENT_ID) >1);

7. Display the resources whose age is more than the average age of all the managers

SELECT RES_NAME
FROM RESOURCE_2
WHERE (MONTHS_BETWEEN(SYSDATE,DOB)/12) >
(SELECT AVG(MONTHS_BETWEEN(SYSDATE,DOB)/12)
FROM RESOURCE_2
WHERE DEGINATION ='MANAGER');


--8. Display resources who have worked for foreign clients


SELECT R.RES_NAME
FROM CLIENT_2 C,ASSIGNMENT_2 A,RESOURCE_2 R
WHERE C.CLIENT_ID = A.CLIENT_ID
AND R.RES_ID = A.RES_ID
AND C.COUNTRY NOT IN ('INDIA');

9. Display the projects which has got delayed in deliver and also display its delay in no of days

SELECT TITLE,(ACTUAL_END_DATE -EXPECTED_END_DATE ) AS delay_in_no_of_days
FROM PROJECT_2;

10. Display the employee names who were assigned to a minimum of 5 assignments in the current year

SELECT R.RES_NAME,COUNT(A.CLIENT_ID)
FROM ASSIGNMENT_2 A,RESOURCE_2 R
WHERE A.RES_ID = R.RES_ID
AND TO_CHAR(ASSIGNED_DATE,'YYYY') = TO_CHAR(SYSDATE,'YYYY')
GROUP BY R.RES_NAME
HAVING COUNT(A.CLIENT_ID)>5;

--11. Display the projects that were not closed as expected for the client ‘Cathay Pacific’ in the current year.

 SELECT  P.TITLE
  FROM PROJECT_2 P,ASSIGNMENT_2 A,CLIENT_2 C
  WHERE P.PROJECT_ID = A.PROJECT_ID
  AND C.CLIENT_ID = A.CLIENT_ID
  AND P.EXPECTED_END_DATE ='10-DEC-15'
  AND C.CLIENT_NAME = 'Cathay Pacific';
 
--12. Display the no of resources working on a single project as on today

SELECT DISTINCT PROJECT_ID,COUNT(RES_ID)
FROM ASSIGNMENT_2
WHERE RELEASE_DATE IS NULL
GROUP BY PROJECT_ID;


13. Display the resource names who are not assigned to any project as on today


SELECT RES_NAME
FROM RESOURCE_2
WHERE RES_ID  NOT IN (SELECT RES_ID FROM ASSIGNMENT_2 WHERE  RELEASE_DATE   IS     NULL);


--15. Display the client country wise no of client, no of projects for the current quarter.

SELECT COUNTRY,TO_CHAR(P.EXPECTED_END_DATE,'Q'),COUNT(C.CLIENT_ID)
FROM CLIENT_2 C,ASSIGNMENT_2 A,PROJECT_2 P
WHERE C.CLIENT_ID = A.CLIENT_ID
AND A.PROJECT_ID =P.PROJECT_ID
AND TO_CHAR(P.EXPECTED_END_DATE,'Q') = TO_CHAR(SYSDATE,'Q')
GROUP BY COUNTRY,TO_CHAR(P.EXPECTED_END_DATE,'Q');

--16. Display no of projects opened in the previous financial year for every quarter. Quarter depends on financial year.

--Q1 is from April to June, Q2 is between July and Sep and likewise other quarters.

SELECT distinct CASE
        WHEN TO_CHAR(P.START_DATE,'MON') IN ('APR','MAY','JUN') THEN 'Q1'
        WHEN TO_CHAR(P.START_DATE,'MON') IN ('JUL','AUG','SEP') THEN 'Q1'
        WHEN TO_CHAR(P.START_DATE,'MON') IN ('OCT','NOV','DEC') THEN 'Q1'
        WHEN TO_CHAR(P.START_DATE,'MON') IN ('JAN','FEB','MAR') THEN 'Q1'
        END AS Quarter,A.PROJECT_ID
  FROM PROJECT_2 P,ASSIGNMENT_2 A
  WHERE P.PROJECT_ID = A.PROJECT_ID;
 

Comments

Popular posts from this blog

ETL TOOLS

RANK FUNCTION