100% found this document useful (1 vote)
593 views19 pages

DMBS Part1 SOLUTIONS

The document contains SQL statements for creating tables, altering tables, inserting data, selecting data, updating data, deleting data, and using functions. It defines tables for players, tournaments, matches, and more. It also includes statements for creating columns, primary keys, foreign keys, checks, and indexes. Sample queries select, update, insert and delete data from the tables. Functions like upper, substr, round, and months_between are demonstrated.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
593 views19 pages

DMBS Part1 SOLUTIONS

The document contains SQL statements for creating tables, altering tables, inserting data, selecting data, updating data, deleting data, and using functions. It defines tables for players, tournaments, matches, and more. It also includes statements for creating columns, primary keys, foreign keys, checks, and indexes. Sample queries select, update, insert and delete data from the tables. Functions like upper, substr, round, and months_between are demonstrated.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

DDL STATEMENTS

EXERCISE 1

CREATE TABLE Player(


PId INTEGER PRIMARY KEY,
PName VARCHAR2(20) NOT NULL,
Ranking INTEGER);

EXERCISE 2

CREATE TABLE Tournament(


TId INTEGER PRIMARY KEY,
TName VARCHAR2(30) NOT NULL,
StartDt DATE NOT NULL,
EndDt DATE NOT NULL,
Prize INTEGER NOT NULL);

EXERCISE 3
CREATE TABLE Match(
MId INTEGER,
TId INTEGER REFERENCES Tournament(TId),
Player1 INTEGER,
Player2 INTEGER,
MatchDt DATE NOT NULL,
Winner INTEGER,
Score VARCHAR2(30) NOT NULL,
PRIMARY KEY(MId,TId),
FOREIGN KEY(Player1) REFERENCES Player(PId),
FOREIGN KEY(Player2) REFERENCES Player(PId),
FOREIGN KEY(Winner) REFERENCES Player(PId),
CHECK(Player1 <>Player2));

EXERCISE 4

ALTER TABLE Player ADD (MatchesPlayed NUMBER,MatchesWon NUMBER);

EXERCISE 7 ALTER

ALTER TABLE Player DROP(ContactNo);

EXERCISE 8 ALTER

ALTER TABLE Player RENAME COLUMN PId TO PlayerId;

EXERCISE 9 ALTER
ALTER TABLE Player MODIFY PName VARCHAR2(50);
DML STATEMENTS PART 1
EXERCISE 10 INSERT

INSERT INTO Salesman (SId, SName, Location) VALUES(11,'Elizabeth','London');

EXERCISE 11 INSERT
INSERT INTO Product (Prodid,Pdesc,Price,Category, Discount) VALUES
(110,'Bat',50,'Sports',NULL);

EXERCISE 12 SELECT
SELECT * FROM Product;

EXERCISE 13 SELECT

SELECT Prodid,Price,Category FROM Product;

EXERCISE 14 SELECT

SELECT DISTINCT Category FROM Product;

EXERCISE 7

SELECT Prodid,Pdesc,Category,Discount FROM Product WHERE Category='Apparel';

EXERCISE 8
SELECT Prodid,Pdesc,Category,Discount FROM Product WHERE Pdesc IS NULL;

EXERCISE 9
SELECT Prodid,Pdesc,Category,Discount FROM Product WHERE Category='Apparel' AND
Discount > 5;

ASSIGNMENTS DML STATEMENTS


COLLABORATIVE ASSIGNMENT 2

CREATE TABLE Shopper(


Shopperid NUMBER PRIMARY KEY,
ShopperName VARCHAR2(20) NOT NULL,
Gender CHAR(6) CHECK (Gender IN('Male', 'Female')),
MobileNo NUMBER NOT NULL,
Address VARCHAR2(50));

COLLABORATIVE ASSIGNMENT 3
ALTER TABLE Shopper MODIFY MobileNo VARCHAR2(15);
ASSIGNMENT 1
CREATE TABLE Article(
ArCode CHAR(5) PRIMARY KEY CHECK (ArCode LIKE 'A%'),
ArName VARCHAR2(30) NOT NULL,
Rate NUMBER(8,2),
Quantity NUMBER(4) DEFAULT 0 CHECK (Quantity >=0),
Class CHAR(1) CHECK (Class IN('A','B','C')));

ASSIGNMENT 5 MANDATORY

CREATE TABLE Store(


Name VARCHAR2(20) PRIMARY KEY,
LOCATION VARCHAR2(30) NOT NULL,
ManagerName VARCHAR2(30) UNIQUE);

ASSIGNMENT 6 MANDATORY

ALTER TABLE Store RENAME COLUMN Name TO StoreName;

ASSIGNMENT 7 MANDATORY
CREATE TABLE Bill(
BillNo NUMBER PRIMARY KEY,
StoreName VARCHAR2(20) REFERENCES Store(StoreName),
Shopperid NUMBER REFERENCES Shopper(ShopperId),
ArCode CHAR(5) REFERENCES Article(ArCode),
Amount NUMBER,
BillDate DATE,
Quantity NUMBER(4) DEFAULT 1 CHECK( Quantity>0));

ASSIGNMENT 8 MANDATORY
CREATE TABLE Supplier(
Supplierid VARCHAR2(6) PRIMARY KEY,
Name VARCHAR2(30),
ContactNo VARCHAR2(15) NOT NULL,
Emailid VARCHAR2(30));

ASSIGNMENT 9 MANDATORY
ALTER TABLE Supplier ADD City VARCHAR2(10);

ASSIGNMENT 10 MANDATORY
ALTER TABLE Supplier DROP (Emailid);

ASSIGNMENT 11 OPTIONAL
CREATE TABLE City(City VARCHAR2(20) UNIQUE);
ASSIGNMENT 12 OPTIONAL
ALTER TABLE City DROP (City);

ASSIGNMENT 13 OPTIONAL

CREATE TABLE Address(


HouseNo NUMBER,
Street VARCHAR2(30),
city VARCHAR2(20) REFERENCES City(City),
zip NUMBER(6) CHECK(ZIP>=0),
state VARCHAR2(5),
PRIMARY KEY (HouseNo,Street,city));

ASSIGNMENT 14 OPTIONAL
ALTER TABLE Address MODIFY state VARCHAR2(20);

COLLABORATIVE ASSIGNMENT 15
INSERT INTO Shopper (ShopperId,ShopperName, Gender, MobileNo, Address) VALUES
(101,'Mark Jane','Male',1234567890,'Allen Street, New York');

ASSIGNMENT 2

INSERT INTO Article (ArCode,ArName, Rate,Quantity,Class)


VALUES('A1001','Mouse',500,0,'C');

ASSIGNMENT 17 MANDATORY
INSERT INTO Store(Name,Location,ManagerName) VALUES ('Loyal World','Infy Campus,
Mysore','Rohan Kumar');

ASSIGNMENT 18 MANDATORY

INSERT INTO Bill(BillNo,StoreName,Shopperid,ArCode,Amount,BillDate,Quantity)


VALUES(1001,'Loyal World',101,'A1001',1000,'20-OCT-15',2);

ASSIGNMENT 19 MANDATORY
INSERT INTO Supplier (Supplierid,Name,ContactNo,City) VALUES('S501','Avaya
Ltd',9012345678,'Mysore');

ASSIGNMENT 3
SELECT Descr,Price FROM Item WHERE( Descr LIKE '%Hard disk');

ASSIGNMENT 4
SELECT * FROM Quotation WHERE Qstatus <> 'Accepted';
ASSIGNMENT 5
SELECT Designation,Salary FROM Empdetails WHERE (Designation='Manager' OR
Designation='Billing Staff');

ASSIGNMENT 6

SELECT Roid, Location FROM Retailoutlet WHERE Managerid IS NULL;

ASSIGNMENT 7
SELECT Orderid,QuotationID,Status FROM Orders WHERE Orderdate BETWEEN '1-Dec-2014'
AND '1-Jan-2015';

ASSIGNMENT 25 MANDATORY
SELECT Itemcode, Descr, Price FROM Item WHERE (Descr LIKE '%Shirt' OR Descr LIKE
'%Skirt') AND Category ='B';

ASSIGNMENT 26 MANDATORY
SELECT DISTINCT Designation,Salary FROM Empdetails;

ASSIGNMENT 27 MANDATORY

SELECT Itemcode, Descr, Price FROM Item;

ASSIGNMENT 28 MANDATORY
SELECT Quotationid,Sname FROM Quotation WHERE Qstatus ='Accepted' OR Qstatus
='Rejected';

ASSIGNMENT 29 MANDATORY
SELECT Itemcode, Descr, Price FROM Item WHERE Descr LIKE '_r%';

ASSIGNMENT 30 MANDATORY

SELECT DISTINCT Itemtype FROM Item;

ASSIGNMENT 31 MANDATORY

SELECT Orderid,Quotationid, Status, Pymtdate FROM Orders WHERE Amountpaid IS NULL;

ASSIGNMENT 32 MANDATORY

SELECT DISTINCT Itemtype, Category FROM Item;

ASSIGNMENT 33 MANDATORY
SELECT Empid, Salary "Current Salary",Salary*1.1 "New Salary", Salary*0.1 "Incremented
Amount" FROM Empdetails;
ASSIGNMENT 34 MANDATORY

INSERT INTO CITY VALUES ('Mysore');

ASSIGNMENT 35 OPTIONAL

INSERT INTO Address(HouseNo,Street,city,zip,state) VALUES (350,'Electronics


City','Mysore',570018, 'Karnataka');

ASSIGNMENT 36 OPTIONAL
INSERT INTO Article VALUES ('A1002','Keyboard',1000,10,'B');

ASSIGNMENT 37 OPTIONAL
SELECT Quotationid,Qdate,Quotedprice FROM Quotation WHERE Quotedprice > 1400 AND
Quotedprice < 2150;

ASSIGNMENT 38 OPTIONAL
SELECT Itemtype,Descr,Price FROM Item WHERE Price > 4000 ;

ASSIGNMENT 39 OPTIONAL
SELECT Designation,Salary FROM Empdetails WHERE (Designation IN('Billing
Staff','Manager') AND Salary BETWEEN 2500 AND 5000 );

DML STATEMENTS PART 2


EXERCISE 5
UPDATE PRODUCT SET DISCOUNT=25 WHERE CATEGORY ='Sports';

EXERCISE 19 UPDATE
UPDATE PRODUCT SET PRICE=50 WHERE CATEGORY='Apparel' AND PDESC='Trouser';

EXERCISE 20 UPDATE

UPDATE SALESMAN SET SNAME='Jenny', LOCATION='Bristol' WHERE SID=3;

EXERCISE 6

DELETE FROM SALEDETAIL WHERE SALEID=1004;

EXERCISE 22 DELETE
DELETE FROM SALEDETAIL WHERE QUANTITY>5;
ADDITIONAL CONCEPTS

EXERCISE 23 FUNCTIONS
SELECT PRODID,PDESC,CATEGORY FROM PRODUCT WHERE
UPPER(CATEGORY)='ELECTRONICS';
EXERCISE 24 FUNCTIONS
SELECT PRODID,SUBSTR(PDESC,1,5) PDESC_FIVE,CATEGORY FROM PRODUCT;

EXERCISE 25 FUNCTIONS
SELECT COUNT(SALEID) SALE_COUNT FROM SALE WHERE
MONTHS_BETWEEN(SYSDATE,SLDATE)<40;

EXERCISE 26 FUNCTIONS

SELECT NVL(PDESC,'No Description') PDESC,DISCOUNT FROM PRODUCT;

SORTING DATA
EXERCISE 27 ORDER BY

SELECT PRODID,CATEGORY,PRICE,DISCOUNT FROM PRODUCT ORDER BY CATEGORY


DESC,PRICE ASC;
EXERCISE 10
SELECT PRODID,CATEGORY,DISCOUNT FROM PRODUCT WHERE CATEGORY
IN('Sports','Apparel') ORDER BY CATEGORY,DISCOUNT ;

ASSIGNMENTS DML,FUNCTIONS
COLLABORATIVE ASSIGNMENT 40
SELECT DISTINCT ITEMTYPE,
CASE
WHEN PRICE < 500 THEN 'Cheap'
WHEN PRICE >=500 AND PRICE <2000 THEN 'Affordable'
WHEN PRICE >=2000 AND PRICE <5000 THEN 'Expensive'
WHEN PRICE >=5000 THEN 'Very Expensive'
END
AS CLASSIFICATION FROM ITEM ORDER BY ITEMTYPE;
COLLABORATIVE ASSIGNMENT 42
SELECT ORDERID, ROUND(MONTHS_BETWEEN(PYMTDATE,ORDERDATE),2) AS "No of
Months" FROM ORDERS WHERE MONTHS_BETWEEN(PYMTDATE,ORDERDATE) > 0.1;

COLLABORATIVE ASSIGNMENT 43

SELECT EMPID, SALARY "Current Salary",ROUND(SALARY*1.2) "New Salary",


ROUND(SALARY*0.2) "Incremented Amount" FROM EMPDETAILS WHERE
DESIGNATION='Manager';

COLLABORATIVE ASSIGNMENT 44
SELECT ITEMCODE FROM ITEM WHERE ABS(QTYONHAND-REORDERLEVEL) >50;

EXERCISE 31 FUNCTIONS

SELECT PRODID,PDESC, PRICE "Old_Price", ROUND(PRICE*0.775,2) "New_Price" FROM


PRODUCT WHERE CATEGORY='Sports';

EXERCISE 32 FUNCTIONS
SELECT SALEID, ROUND(MONTHS_BETWEEN(SYSDATE,SLDATE),1) "MONTH_AGED" FROM
SALE;

EXERCISE 33 FUNCTIONS
SELECT ROUND(AVG(PRICE),2) "Avg",MIN(PRICE) "Min", MAX(PRICE) "Max",
COUNT(PRODID) "Total" FROM PRODUCT;

EXERCISE 34 FUNCTIONS

SELECT SNAME || ' is from '|| LOCATION "RESULT" FROM SALESMAN;

EXERCISE 35 FUNCTIONS
SELECT TO_CHAR(TO_DATE('Jan/10/2015', 'mm/dd/yyyy'), 'Month') AS
"MONTH",TO_NUMBER('2,50,000','9,99,999')AS "AMOUNT" FROM Dual;

EXERCISE 36 ORDER BY
SELECT PRODID,PDESC,PRICE FROM PRODUCT ORDER BY PRICE DESC, PRODID DESC;

EXERCISE 37 ORDER BY
SELECT PRODID,PDESC,PRICE FROM PRODUCT ORDER BY PDESC;
ASSIGNMENT 51 MANDATORY
SELECT EMPID,EMPNAME,SALARY,
CASE DESIGNATION
WHEN 'Administrator' THEN SALARY*1.1
WHEN 'Manager' THEN SALARY*1.05
WHEN 'Billing Staff' THEN SALARY*1.2
WHEN 'Security' THEN SALARY*1.25
ELSE SALARY*1.02
END AS "INCREASEDSALARY" FROM EMPDETAILS;
ASSIGNMENT 52 MANDATORY
SELECT EMPID,SALARY,
CASE
WHEN SALARY < 2500 THEN 'Class 3'
WHEN SALARY BETWEEN 2500 AND 5000 THEN 'Class 2'
WHEN SALARY >5000 THEN 'Class 1'
END AS SALGRADE FROM EMPDETAILS;

ASSIGNMENT 53 MANDATORY
SELECT ITEMCODE, PRICE "Old Price",ROUND(PRICE*0.745,2) "New Price" FROM ITEM
WHERE ITEMTYPE='FMCG';

ASSIGNMENT 54 MANDATORY

SELECT EMPID,EMPNAME,WORKSIN FROM EMPDETAILS WHERE DESIGNATION='Billing


Staff';

ASSIGNMENT 8
SELECT ORDERID, STATUS, NVL(PYMTMODE,'Payment yet not done') "PYMTMODE"FROM
ORDERS;

ASSIGNMENT 56 MANDATORY

SELECT DESCR FROM ITEM WHERE LENGTH(DESCR)>15;

ASSIGNMENT 57 MANDATORY

SELECT SUBSTR(ROID,2) "NUMERICROID" FROM RETAILOUTLET;

ASSIGNMENT 58 MANDATORY
SELECT TO_CHAR(SYSDATE,'Mon/DD/YYYY Day') "CURRENTDATE" FROM DUAL;

ASSIGNMENT 9
SELECT COUNT(ORDERID) "TOTALORDERSCOUNT",COUNT(AMOUNTPAID)
"PAIDORDERSCOUNT" FROM ORDERS;
ASSIGNMENT 60 OPTIONAL

SELECT ORDERID,ABS(ORDERDATE-PYMTDATE) "NOOFDAYS" FROM ORDERS;

ASSIGNMENT 61 OPTIONAL

SELECT COUNT(DISTINCT ITEMTYPE) "NOOFITEMTYPES" FROM ITEM;

ASSIGNMENT 10
SELECT MAX(SALARY) "MAXSAL",MIN(SALARY) "MINSAL",SUM(SALARY) "TOTALSAL",
AVG(SALARY) "AVGSAL" FROM EMPDETAILS;

ASSIGNMENT 64 OPTIONAL
SELECT COUNT(ITEMCODE) "NOOFITEMS" FROM ITEM;

ASSIGNMENT 65 OPTIONAL
SELECT ORDERID,MONTHS_BETWEEN(ORDERDATE,PYMTDATE) "No of Months"FROM
ORDERS;

ASSIGNMENT 66 OPTIONAL

SELECT SUM(QUOTEDPRICE) AS "TOTALPRICE" FROM QUOTATION WHERE


SUBSTR(QDATE,4,3)='JUN' AND QSTATUS='Accepted';

GROUP BY HAVING
EXERCISE 29 GROUP BY

SELECT TO_CHAR(SLDATE,'Month') "MONTH",COUNT(SALEID) "NUMBER_SALE" FROM SALE


GROUP BY TO_CHAR(SLDATE,'Month') ORDER BY COUNT(SALEID) DESC;
EXERCISE 11
SELECT PRODID,SUM(QUANTITY) "QTY_SOLD" FROM SALEDETAIL WHERE QUANTITY>1
GROUP BY PRODID HAVING COUNT(PRODID)>1;

COMBINING DATA

EXERCISE 40 UNION
SELECT * FROM SALESMAN WHERE SNAME LIKE '%e%' AND LOCATION LIKE '%o%'
UNION
SELECT * FROM SALESMAN WHERE SNAME LIKE '%a%' AND LOCATION LIKE '%a%';
EXERCISE 41 UNION
SELECT PRODID,PDESC,CATEGORY,DISCOUNT FROM PRODUCT WHERE DISCOUNT<10
UNION ALL
SELECT PRODID,PDESC,CATEGORY,DISCOUNT FROM PRODUCT WHERE CATEGORY='Sports';

EXERCISE 42 UNION
SELECT PRODID,PDESC,CATEGORY,DISCOUNT FROM PRODUCT WHERE DISCOUNT<10 OR
CATEGORY='Sports';

EXERCISE 43 UNION
SELECT 'S' AS "TYPE",SID AS "ID",SNAME AS "DETAILS" FROM SALESMAN
UNION
SELECT 'P' AS "TYPE",PRODID , CATEGORY FROM PRODUCT;

CARTESIAN PRODUCT AND INNER JOIN

EXERCISE 44 JOINS
SELECT ID, ENAME,DEPT,E.COMPID,MAKE FROM EMPLOYEE E
INNER JOIN
COMPUTER C ON E.COMPID=C.COMPID;

EXERCISE 13

SELECT ID, ENAME,E.COMPID,MAKE FROM EMPLOYEE E


INNER JOIN
COMPUTER C ON E.COMPID=C.COMPID AND MODEL IN('Edge','Precision');

EXERCISE 14

SELECT DEPT, COUNT(E.COMPID) "NUMBER OF COMPUTERS" FROM EMPLOYEE E


INNER JOIN
COMPUTER C ON E.COMPID=C.COMPID WHERE MAKE='Dell' GROUP BY E.DEPT;

ASSIGNMENTS GROUPING DATA, INNER JOIN

COLLABORATIVE ASSIGNMENT 41
SELECT TO_CHAR(QDATE,'Month') "MONTH",COUNT(ITEMCODE) "QUOTATIONCOUNT"
FROM QUOTATION GROUP BY TO_CHAR(QDATE,'Month');
EXERCISE 12
SELECT LOCATION, COUNT(LOCATION) "NUMBER_SMAN" FROM SALESMAN GROUP BY
LOCATION;

EXERCISE 39 GROUP BY

SELECT CATEGORY FROM PRODUCT GROUP BY CATEGORY HAVING COUNT(CATEGORY)>1;

ASSIGNMENT 11
SELECT ITEMCODE,AVG(QTYAVAILABLE) "Average Quantity" FROM RETAILSTOCK GROUP BY
ITEMCODE HAVING AVG(QTYAVAILABLE)<75;

ASSIGNMENT 46 MANDATORY
SELECT PYMTMODE,COUNT(PYMTMODE) "PYMTCOUNT" FROM ORDERS WHERE
TO_CHAR(PYMTDATE,'YYYY')<'2015' GROUP BY PYMTMODE HAVING
COUNT(PYMTMODE)>1;

ASSIGNMENT 12
SELECT SNAME ,AVG(QUOTEDPRICE) "Average quoted price" FROM QUOTATION WHERE
QSTATUS='Closed' GROUP BY SNAME HAVING AVG(QUOTEDPRICE)>500;

ASSIGNMENT 48 MANDATORY
SELECT ITEMTYPE, CATEGORY , ROUND(AVG(PRICE),2) "Average item price"FROM ITEM
WHERE ITEMTYPE IN('FMCG','Computer') GROUP BY ITEMTYPE,CATEGORY HAVING
ROUND(AVG(PRICE),2)<2000;

ASSIGNMENT 13
SELECT JOB, AVG(SAL) "Average Salary" FROM EMP WHERE JOB IN('MANAGER','ANALYST')
GROUP BY JOB HAVING AVG(SAL)>1500;

ASSIGNMENT 14
SELECT JOB, DEPTNO, AVG(SAL) "AVGSALARY" FROM EMP WHERE DEPTNO IN(10,20) AND
SAL>2000 GROUP BY JOB,DEPTNO HAVING AVG(SAL)>2500;

ASSIGNMENT 63 OPTIONAL

SELECT SNAME, AVG(QUOTEDPRICE) "Average quoted price" FROM QUOTATION WHERE


QUOTEDPRICE>1000 AND QSTATUS='Closed' GROUP BY SNAME HAVING
AVG(QUOTEDPRICE)<4500;

COLLABORATIVE ASSIGNMENT 67
SELECT ENAME,SAL,DNAME FROM EMP E
INNER JOIN DEPT C ON C.DEPTNO=E.DEPTNO WHERE SAL>2000;
COLLABORATIVE ASSIGNMENT 68
SELECT ENAME, DNAME FROM EMP E INNER JOIN DEPT D ON D.DEPTNO=E.DEPTNO WHERE
JOB='MANAGER';

COLLABORATIVE ASSIGNMENT 69

SELECT DNAME FROM DEPT D INNER JOIN EMP E ON D.DEPTNO=E.DEPTNO WHERE


SAL>1500 GROUP BY DNAME HAVING COUNT(SAL)>1;

ASSIGNMENT 21
SELECT I.ITEMCODE, DESCR, SNAME FROM ITEM I INNER JOIN QUOTATION Q ON
Q.ITEMCODE=I.ITEMCODE;

ASSIGNMENT 72 MANDATORY

SELECT CUSTID "Customer Id",CUSTNAME "Customer Name" FROM CUSTOMER C INNER


JOIN EMPDETAILS E ON EMPNAME=CUSTNAME AND E.EMAILID=C.EMAILID;
ASSIGNMENT 17
SELECT I.ITEMCODE, DESCR, CATEGORY, QUOTEDPRICE FROM ITEM I INNER JOIN
QUOTATION Q ON I.ITEMCODE=Q.ITEMCODE WHERE QSTATUS='Accepted';
ASSIGNMENT 74 MANDATORY

SELECT ROID, DESCR,ITEMTYPE, UNITPRICE FROM RETAILSTOCK R INNER JOIN ITEM I ON


I.ITEMCODE=R.ITEMCODE WHERE R.UNITPRICE>1500;

ASSIGNMENT 18
SELECT I.ITEMCODE, SNAME, SUM(QTYORDERED) "TOTALQUANTITY" FROM ITEM I INNER
JOIN QUOTATION Q ON I.ITEMCODE=Q.ITEMCODE INNER JOIN ORDERS O ON
Q.QUOTATIONID=O.QUOTATIONID GROUP BY I.ITEMCODE,SNAME HAVING
SUM(QTYORDERED)>=100;

ASSIGNMENT 76 MANDATORY

SELECT I.ITEMCODE, DESCR FROM ITEM I INNER JOIN QUOTATION Q ON


Q.QUOTEDPRICE=I.PRICE GROUP BY I.ITEMCODE,DESCR HAVING COUNT(I.ITEMCODE)>1;

ASSIGNMENT 77 MANDATORY
SELECT SNAME, Q.QUOTATIONID FROM QUOTATION Q INNER JOIN ORDERS O ON
O.QUOTATIONID=Q.QUOTATIONID WHERE
MONTHS_BETWEEN(DELIVEREDDATE,ORDERDATE)<=5/30;

ASSIGNMENT 85 OPTIONAL
SELECT CUSTNAME,BILLAMOUNT FROM CUSTOMER C INNER JOIN PURCHASEBILL P ON
P.CUSTID=C.CUSTID WHERE BILLAMOUNT>5000;
ASSIGNMENT 86 OPTIONAL

SELECT ROID, COUNT(ROID) "Number of items" FROM RETAILSTOCK GROUP BY ROID;

SELF JOIN AND OUTER JOIN

EXERCISE 47 JOINS

SELECT SALEID, SLDATE FROM SALE S INNER JOIN SALESMAN SM ON S.SID=SM.SID WHERE
LOCATION='London';

EXERCISE 15
SELECT SM.SID,SM.SNAME,SM.LOCATION FROM SALESMAN SM INNER JOIN SALESMAN S
ON S.LOCATION=SM.LOCATION GROUP BY SM.SID,SM.SNAME,SM.LOCATION HAVING
COUNT(SM.LOCATION)>1;

EXERCISE 49 JOINS

SELECT SNAME,SALEID FROM SALESMAN SM LEFT OUTER JOIN SALE S ON S.SID=SM.SID;

EXERCISE 50 JOINS
SELECT SM.SID, SM.SNAME, SUM(P.PRICE*SD.QUANTITY) "TAMOUNT",
SUM(P.PRICE*SD.QUANTITY*(P.DISCOUNT/100)) "TDISCOUNT" FROM SALESMAN SM INNER
JOIN SALE S ON S.SID=SM.SID INNER JOIN SALEDETAIL SD ON SD.SALEID=S.SALEID INNER
JOIN PRODUCT P ON P.PRODID=SD.PRODID GROUP BY SM.SID,SM.SNAME ORDER BY
SUM(P.PRICE*SD.QUANTITY) DESC,SUM(P.PRICE*SD.QUANTITY*(P.DISCOUNT/100)) DESC;

EXERCISE 51 JOINS
SELECT S.SALEID,SD.PRODID,SM.SID,SM.SNAME FROM SALESMAN SM INNER JOIN SALE S
ON S.SID=SM.SID INNER JOIN SALEDETAIL SD ON SD.SALEID=S.SALEID GROUP BY
S.SALEID,SD.PRODID,SM.SID,SM.SNAME ORDER BY S.SALEID;

EXERCISE 17
SELECT SM.SID, SM.SNAME, NVL(SUM(P.PRICE*SD.QUANTITY),0) "TAMOUNT",
NVL(SUM(P.PRICE*SD.QUANTITY*(P.DISCOUNT/100)),0) "TDISCOUNT" FROM SALESMAN
SM LEFT OUTER JOIN SALE S ON S.SID=SM.SID LEFT OUTER JOIN SALEDETAIL SD ON
SD.SALEID=S.SALEID LEFT OUTER JOIN PRODUCT P ON P.PRODID=SD.PRODID GROUP BY
SM.SID,SM.SNAME;

EXERCISE 53 JOINS
SELECT SM.LOCATION, P.CATEGORY, SUM(QUANTITY) "Total Quantity" FROM SALESMAN
SM INNER JOIN SALE S ON S.SID=SM.SID INNER JOIN SALEDETAIL SD ON SD.SALEID=S.SALEID
INNER JOIN PRODUCT P ON P.PRODID=SD.PRODID GROUP BY SM.LOCATION,P.CATEGORY;
ASSIGNMENTS SELF JOIN AND OUTER JOIN
ASSIGNMENT 15

SELECT E.ENAME, V.VEHICLENAME FROM EMP E LEFT OUTER JOIN EMPVEHICLE EV ON


E.EMPNO=EV.EMPNO LEFT OUTER JOIN VEHICLE V ON V.VEHICLEID=EV.VEHICLEID;

EXERCISE 54 JOINS
SELECT E.ENAME,E.DEPT, NVL(C.MODEL,'Not allocated') "MODEL" FROM EMPLOYEE E LEFT
OUTER JOIN COMPUTER C ON E.COMPID=C.COMPID;

EXERCISE 55 JOINS

SELECT ID, ENAME, E.DEPT, C.MODEL FROM EMPLOYEE E FULL OUTER JOIN COMPUTER C
ON E.COMPID=C.COMPID;

EXERCISE 18
SELECT E.ID, E.ENAME,M.ID "MGRID",M.ENAME "MGRNAME", C.MODEL
"E_MODEL",MC.MODEL "M_MODEL" FROM EMPLOYEE E INNER JOIN EMPLOYEE M ON
E.MANAGER=M.ID INNER JOIN COMPUTER C ON E.COMPID=C.COMPID INNER JOIN
COMPUTER MC ON M.COMPID=MC.COMPID;

EXERCISE 57 JOINS
SELECT SM.SID,SM.SNAME FROM SALESMAN SM LEFT OUTER JOIN SALE S ON S.SID=SM.SID
WHERE SALEID IS NULL;

EXERCISE 16
SELECT P.PRODID,P.CATEGORY, P.PRICE FROM PRODUCT P INNER JOIN PRODUCT P2 ON
P.PRICE=P2.PRICE AND P.PRODID<>P2.PRODID;

ASSIGNMENT 78 MANDATORY

SELECT NVL(E.EMPNAME,'No Manager') "EMPNAME", I.CATEGORY, SUM(RS.QTYAVAILABLE)


"TOTALQUANTITY" FROM EMPDETAILS E RIGHT OUTER JOIN RETAILOUTLET RO ON
RO.MANAGERID=E.EMPID INNER JOIN RETAILSTOCK RS ON RO.ROID=RS.ROID INNER JOIN
ITEM I ON I.ITEMCODE=RS.ITEMCODE GROUP BY E.EMPNAME,I.CATEGORY;

ASSIGNMENT 79 MANDATORY

SELECT RO.LOCATION, C.CUSTTYPE, SUM(PB.QUANTITY) "TOTALQUANTITY"


FROM CUSTOMER C INNER JOIN PURCHASEBILL PB
ON PB.CUSTID=C.CUSTID AND C.GENDER='M'
INNER JOIN RETAILOUTLET RO ON RO.ROID=PB.ROID
INNER JOIN ITEM I ON PB.ITEMCODE=I.ITEMCODE
WHERE I.ITEMTYPE IN('Apparels','Computer') GROUP BY RO.LOCATION,C.CUSTTYPE;
ASSIGNMENT 80 MANDATORY
SELECT I.ITEMCODE,I.DESCR,NVL(PB.BILLAMOUNT,0) "BILLAMOUNT", NVL(PB.CUSTID,0)
"CUSTID" FROM ITEM I LEFT OUTER JOIN PURCHASEBILL PB ON I.ITEMCODE=PB.ITEMCODE
WHERE I.ITEMTYPE='FMCG';

ASSIGNMENT 16
SELECT I.ITEMCODE,I.DESCR,NVL(TO_CHAR(R.QTYAVAILABLE),'N.A.') QTYAVAILABLE FROM
ITEM I LEFT OUTER JOIN RETAILSTOCK R ON I.ITEMCODE=R.ITEMCODE AND R.ROID='R1001';

ASSIGNMENT 82 MANDATORY

SELECT E.EMPID,E.EMPNAME,RO.ROID,RO.LOCATION FROM RETAILOUTLET RO LEFT OUTER


JOIN EMPDETAILS E ON RO.ROID=E.WORKSIN;

ASSIGNMENT 19
SELECT E.EMPNAME,E.DESIGNATION,E.EMAILID FROM EMPDETAILS E INNER JOIN
RETAILOUTLET R ON E.WORKSIN=R.ROID WHERE E.WORKSIN=(SELECT WORKSIN FROM
EMPDETAILS WHERE EMPNAME='George') AND E.EMPNAME NOT IN 'George';

ASSIGNMENT 20

SELECT C.CUSTID,C.CUSTNAME FROM CUSTOMER C INNER JOIN CUSTOMER C2 ON


C.ADDRESS=C2.ADDRESS AND C.CUSTID <> C2.CUSTID;

ASSIGNMENT 87 OPTIONAL
SELECT I.ITEMCODE, I.DESCR, RO.LOCATION, RS.QTYAVAILABLE FROM ITEM I INNER JOIN
RETAILSTOCK RS ON RS.ITEMCODE=I.ITEMCODE INNER JOIN RETAILOUTLET RO ON
RO.ROID=RS.ROID AND I.ITEMTYPE='Apparels';

ASSIGNMENT 88 OPTIONAL
SELECT I.ITEMCODE, I.DESCR , NVL(Q.QUOTATIONID,'No quotation received')
"QUOTATIONID" FROM ITEM I LEFT OUTER JOIN QUOTATION Q ON
I.ITEMCODE=Q.ITEMCODE;

ASSIGNMENT 89 OPTIONAL
SELECT I.ITEMCODE,I.DESCR, RS.ROID,RS.QTYAVAILABLE FROM ITEM I INNER JOIN
RETAILSTOCK RS ON I.ITEMCODE=RS.ITEMCODE;

ASSIGNMENT 90 OPTIONAL
SELECT I.DESCR,I.ITEMTYPE,P.BILLAMOUNT FROM ITEM I INNER JOIN PURCHASEBILL P ON
I.ITEMCODE=P.ITEMCODE AND P.ROID='R1001';

ASSIGNMENT 91 OPTIONAL
SELECT C.CUSTID,C.CUSTNAME,C.CUSTTYPE FROM CUSTOMER C INNER JOIN CUSTOMER C2
ON C.CUSTTYPE=C2.CUSTTYPE WHERE C2.CUSTID=2004 AND C.CUSTID<>2004;
ASSIGNMENT 92 OPTIONAL
SELECT I.ITEMTYPE,I.DESCR,NVL(Q.QUOTATIONID,'No quotation received') "Available
Quotation number" FROM ITEM I LEFT OUTER JOIN QUOTATION Q ON
I.ITEMCODE=Q.ITEMCODE WHERE I.ITEMTYPE IN('Computer','FMCG');

INDEPENDENT SUB QUERY


EXERCISE 59 INDEPENDENT SUBQUERY

SELECT SALEID,SLDATE FROM SALE WHERE SLDATE=(SELECT MAX(SLDATE) FROM SALE);

EXERCISE 60 INDEPENDENT SUBQUERY


SELECT SNAME FROM SALESMAN WHERE SID IN (SELECT SID FROM SALE GROUP BY SID
HAVING COUNT(SID)>=2);

EXERCISE 61 INDEPENDENT SUBQUERY


SELECT PRODID,PDESC FROM PRODUCT WHERE PRODID IN (SELECT PRODID FROM
SALEDETAIL GROUP BY PRODID HAVING SUM(QUANTITY)=(SELECT MIN(SUM(QUANTITY))
FROM SALEDETAIL GROUP BY PRODID));

EXERCISE 62 INDEPENDENT SUBQUERY


SELECT SID,SNAME,LOCATION FROM SALESMAN WHERE SID IN(SELECT S.SID FROM SALE S
INNER JOIN SALEDETAIL SD ON S.SALEID=SD.SALEID INNER JOIN PRODUCT P ON
SD.PRODID=P.PRODID GROUP BY S.SID HAVING SUM((PRICE*QUANTITY)-
((PRICE*QUANTITY)*(discount/100)))>(SELECT AVG(SUM((PRICE*QUANTITY)-
((PRICE*QUANTITY)*(discount/100)))) FROM SALEDETAIL SE INNER JOIN PRODUCT P ON
SE.PRODID=P.PRODID GROUP BY SE.SALEID));

EXERCISE 63 CORRELATED SUBQUERY


SELECT Prodid,Category,pdesc,price FROM PRODUCT P WHERE PRICE IN (SELECT
MAX(PRICE) FROM PRODUCT PE WHERE P.Category=PE.Category );

EXERCISE 64 CORRELATED SUBQUERY

SELECT SNAME FROM SALESMAN SM WHERE SID NOT IN (SELECT SID FROM SALE S WHERE
S.SID=SM.SID);

EXERCISE 65 CORRELATED SUBQUERY


SELECT SNAME FROM SALESMAN SM WHERE SID IN (SELECT SID FROM SALE S WHERE
S.SID=SM.SID AND SLDATE BETWEEN '01-Jun-15' AND '30-Jun-15');
EXERCISE 66 CORRELATED SUBQUERY
SELECT SM.SId, SName, Location FROM Salesman SM INNER JOIN Sale S ON S.SId = SM.SId
JOIN SaleDetail SD ON SD.SaleId = S.SaleId JOIN Product P ON P.ProdId = SD.ProdId GROUP
BY SM.SId, SName, Location HAVING sum(Quantity*Price*(1 -(Discount/100))) > (SELECT
AVG(sum(Quantity*Price*(1 -(Discount/100)))) FROM Sale SI INNER JOIN Salesman SMI ON
SI.SId = SMI.SId JOIN SaleDetail SD ON SD.SaleId = SI.SaleId JOIN Product P ON P.ProdId =
SD.ProdId WHERE SM.Location=SMI.Location GROUP BY SI.SId);

COLLABORATIVE ASSIGNMENT 93

SELECT I.ITEMCODE,I.ITEMTYPE,I.DESCR,I.CATEGORY FROM ITEM I WHERE I.ITEMCODE IN


(SELECT P.ITEMCODE FROM PURCHASEBILL P INNER JOIN CUSTOMER C ON
P.CUSTID=C.CUSTID);

COLLABORATIVE ASSIGNMENT 94

SELECT I.ITEMCODE, I.ITEMTYPE, I.DESCR, I.CATEGORY FROM ITEM I WHERE I.ITEMCODE IN


(SELECT Q.ITEMCODE FROM QUOTATION Q WHERE Q.ITEMCODE=I.ITEMCODE AND
Q.QSTATUS IN 'Rejected' AND Q.QUOTEDPRICE IN (SELECT MIN(QUOTEDPRICE) FROM
QUOTATION Q GROUP BY Q.ITEMCODE));

COLLABORATIVE ASSIGNMENT 95
SELECT I.ITEMCODE,I.DESCR FROM ITEM I WHERE I.ITEMCODE IN (SELECT Q.ITEMCODE
FROM QUOTATION Q WHERE Q.QSTATUS IN ('Rejected','Closed') AND Q.QUOTEDPRICE IN
(SELECT MAX(QE.QUOTEDPRICE) FROM QUOTATION QE WHERE QE.QSTATUS IN
('Closed','Rejected')));

COLLABORATIVE ASSIGNMENT 96
SELECT ITEMCODE,DESCR,PRICE FROM ITEM WHERE PRICE IN ( SELECT MAX(PRICE) FROM
ITEM WHERE PRICE < (SELECT MAX(PRICE) FROM ITEM));

ASSIGNMENT 98 MANDATORY

SELECT E.ENAME,E.JOB FROM EMP E WHERE E.EMPNO IN(SELECT EMPNO FROM


EMPVEHICLE);

ASSIGNMENT 99 MANDATORY
SELECT E.ENAME FROM EMP E WHERE E.SAL IN (SELECT MAX(SAL) FROM EMP)

ASSIGNMENT 100 MANDATORY


SELECT EM.EMPNO,EM.ENAME FROM EMP EM WHERE EMPNO IN (SELECT E.EMPNO FROM
EMPVEHICLE E WHERE E.VEHICLEID IN (SELECT EV.VEHICLEID FROM EMPVEHICLE EV GROUP
BY EV.VEHICLEID HAVING COUNT(VEHICLEID) IN (SELECT MAX(COUNT(V.VEHICLEID)) FROM
EMPVEHICLE V GROUP BY V.VEHICLEID)))
ASSIGNMENT 102 MANDATORY
SELECT I.ITEMCODE,I.DESCR,Q.QDATE FROM ITEM I INNER JOIN QUOTATION Q ON
I.ITEMCODE=Q.ITEMCODE WHERE Q.QUOTEDPRICE<(SELECT MAX(QE.QUOTEDPRICE) FROM
QUOTATION QE WHERE Q.QDATE=QE.QDATE )
ASSIGNMENT 103 MANDATORY
SELECT P1.BILLID,I.ITEMCODE FROM PURCHASEBILL P1 INNER JOIN ITEM I ON
P1.ITEMCODE=I.ITEMCODE WHERE P1.BILLID IN (SELECT P2.BILLID FROM PURCHASEBILL P2
WHERE P2.BILLAMOUNT<=(SELECT AVG(P3.BILLAMOUNT) FROM PURCHASEBILL P3 WHERE
P2.ROID=P3.ROID))

ASSIGNMENT 104 MANDATORY


SELECT DISTINCT Q.SNAME,I.ITEMCODE,I.DESCR FROM ITEM I INNER JOIN QUOTATION Q
ON I.ITEMCODE=Q.ITEMCODE WHERE Q.QUOTEDPRICE <(SELECT MAX(QT.QUOTEDPRICE)
FROM QUOTATION QT WHERE I.ITEMCODE = QT.ITEMCODE AND Q.SNAME<>QT.SNAME)

ASSIGNMENT 105 MANDATORY


SELECT E.EMPID,E.EMPNAME,E.DESIGNATION,E.SALARY FROM EMPDETAILS E WHERE
E.SALARY IN (SELECT MAX(ED.SALARY) FROM EMPDETAILS ED WHERE
E.DESIGNATION=ED.DESIGNATION);

ASSIGNMENT 106 MANDATORY


SELECT C.CUSTID,C.CUSTNAME FROM CUSTOMER C WHERE NOT EXISTS(SELECT P.CUSTID
FROM PURCHASEBILL P WHERE C.CUSTID=P.CUSTID)

You might also like