0% found this document useful (0 votes)
35 views2 pages

Answers Test

Uploaded by

Kamal Kannan
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)
35 views2 pages

Answers Test

Uploaded by

Kamal Kannan
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/ 2

SELECT * FROM (SELECT A.EMP_ID AS "employee id", SUBSTR(A.

EMP_FNAME||' '||
A.EMP_LNAME,1,10) AS "emp Name",C.CITY as "city",C.STATE as "state",C.COUNTRY as
"country",A.EMP_SAL as "salary",A.EMP_ACTIVEFROM as "activeDate",
A.EMP_STATUS as "status",B.DEPT_NAME as "Department name",
M.EMP_FNAME||' '||M.EMP_LNAME AS "manager name" FROM EMPLOYEE A, DEPARTMENT B,
LOCATION C, EMPLOYEE M
WHERE A.DEPT_ID = B.DEPT_ID
AND C.LOC_ID = A.LOC_ID
AND A.MGR_ID = M.EMP_ID
and upper(A.EMP_STATUS) = 'ACTIVE'
order by A.EMP_ID DESC NULLS LAST) z
WHERE ROWNUM <= 15;

------------

SELECT A.EMP_ID AS "employee id",


A.EMP_FNAME AS "first name",
A.EMP_LNAME AS "Last name",
C.CITY AS "city",
C.STATE AS "state",
A.EMP_SAL AS "salary",
B.DEPT_NAME AS "dept name"
FROM EMPLOYEE A, DEPARTMENT B, LOCATION C,
(SELECT MAX(EMP_SAL) MAX_SAL, DEPT_ID
FROM EMPLOYEE GROUP BY DEPT_ID
) Z
WHERE A.DEPT_ID = B.DEPT_ID
AND A.LOC_ID = C.LOC_ID
AND A.EMP_SAL = Z.MAX_SAL
AND A.DEPT_ID = Z.DEPT_ID
AND A.EMP_SAL > 50000
and upper(A.EMP_STATUS) = 'ACTIVE';

---------------

SELECT B.DPT_CODE AS "Dpt_code",


B.DPT_NAME AS "Dpt_name",
B.DPT_ALLOTMENT AS "Dpt_allotment",
A.EMP_NAME AS "Manager Name"
FROM EMP A, ALLOTMENT B
WHERE A.EMP_ID = B.MANAGER_ID
AND B.DPT_ALLOTMENT > (SELECT AVG(Z.DPT_ALLOTMENT) FROM ALLOTMENT Z)
AND UPPER(A.STATUS) NOT IN 'INACTIVE'
AND B.DPT_CODE NOT BETWEEN 20 AND 30
AND A.EMP_NAME NOT LIKE 'T%';
exit;

-----------------

select * from
(SELECT A.EMP_NAME AS "name",
A.SALARY AS "salary",
A.COMMISSION AS "commission",
(A.SALARY+A.COMMISSION) AS "netpay",
B.EMP_NAME AS "Manager name"
FROM EMPLOYEES A, EMPLOYEES B
WHERE A.MANAGER_ID = B.EMP_ID) z
where z."netpay" > any (select min(x.SALARY+nvl(x.COMMISSION,0)) from employees x);
------------------------

set serveroutput on;


/
DECLARE
CURSOR EMP_C IS SELECT * FROM (SELECT B.BOOKID AS "BOOKID",
SUBSTR(B.TITLE,1,10) AS "TITLE",
P.PUBLISHERNAME AS "publisher",
A.FIRSTNAME||' '||A.LASTNAME AS "Author"
FROM BOOK B, PUBLISHER P, AUTHOR A
WHERE B.AUTHOR_ID = A.AUTHORID
AND B.PUBLISHERID = P.PUBLISHERID
ORDER BY B.TITLE ASC) A;

BEGIN
dbms_output.enable();
DBMS_OUTPUT.PUT_LINE('BOOKID.............TITLE.............publisher.............Au
thor');
FOR I IN EMP_C LOOP
DBMS_OUTPUT.PUT_LINE(I.BOOKID||'...........'||I.TITLE||'...........'||
I."publisher"||'...........'||I."Author");
END LOOP;
END;
/

-------------------

--------------------TESTING
DECLARE
--V_NAME DEPT_NAME.DEPT%TYPE;
V_INPUT DEPT.dept_id%TYPE:= 50;
V_DID DEPT.dept_id%TYPE;
V_CNT NUMBER;
ABORT_EX EXCEPTION;
BEGIN
dbms_output.enable();
SELECT COUNT(1) INTO V_CNT FROM EMP WHERE DEPT_ID = V_INPUT;
IF V_CNT = 0 THEN
SELECT COUNT(1) INTO V_CNT FROM DEPT WHERE DEPT_ID = V_INPUT;
IF V_CNT = 0 THEN
RAISE ABORT_EX;
END IF;
END IF;

SELECT DEPT_ID INTO V_DID FROM DEPT WHERE DEPT_ID = V_INPUT;


--dbms_output.put_line('ok');
EXCEPTION
WHEN ABORT_EX THEN
DBMS_OUTPUT.PUT_LINE('Dept ID :**** is not a valid ID');
WHEN NO_DATA_FOUND THEN
--V_INPUT := NULL;
DBMS_OUTPUT.PUT_LINE('Dept ID '||V_INPUT ||' is not a valid ID');
END;
/

exit;
-----------------

You might also like