Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
92 views

Module 4 Assignment Solution

The document contains SQL statements that create and populate tables for a student database - STUDIES, SOFTWARE, and PROGRAMMER. It then performs various queries on the tables to retrieve aggregated data and details about students, software developed, and programmers. 26 queries are written to analyze details like highest/lowest costs, sales amounts, languages used, salaries etc. Indexes are also created to optimize queries on the tables.

Uploaded by

Vishnu Sharma
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views

Module 4 Assignment Solution

The document contains SQL statements that create and populate tables for a student database - STUDIES, SOFTWARE, and PROGRAMMER. It then performs various queries on the tables to retrieve aggregated data and details about students, software developed, and programmers. 26 queries are written to analyze details like highest/lowest costs, sales amounts, languages used, salaries etc. Indexes are also created to optimize queries on the tables.

Uploaded by

Vishnu Sharma
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

USE JARVIS;

CREATE TABLE STUDIES


(
Student_id INT PRIMARY KEY,
Student_Name VARCHAR(20),
Student_place VARCHAR(20),
Course VARCHAR(20),
Cost Int
);

INSERT INTO STUDIES VALUES


(1, 'ANAND', 'SABHARI', 'PGDCA', 45000),
(2, 'ALTAF', 'COIT', 'DCA', 7200),
(3, 'JULIANA', 'BITS', 'MCA', 22000),
(4, 'KAMALA', 'PRAGATHI', 'DCP', 5000),
(5, 'MARY', 'SABHARI', 'PGDCA', 4600),
(6, 'NELSON', 'PRAGATHI', 'DAP', 6200),
(7, 'PATRICK', 'SABHARI', 'DCA', 5200),
(8, 'QADIR', 'APPLE', 'HDCP', 14000),
(9, 'RAMESH', 'SABHARI', 'PGDCA', 4500),
(10,'REBECCA', 'BPILLANI', 'DCA', 11000),
(11, 'REMITHA', 'BDPS', 'DCS', 6000),
(12, 'REVATHI', 'SABHARI', 'DAP', 5000),
(13, 'VIJAYA', 'BDPS', 'DCA', 48000);

SELECT * FROM STUDIES;

-- CREATE SOFTWARE TABLE


CREATE TABLE SOFTWARE
(
Student_id INT REFERENCES STUDIES(Student_id),
Title VARCHAR(20),
DEV_IN VARCHAR (10),
SCOST INT,
DCOST INT,
SOLD INT
);

INSERT INTO SOFTWARE VALUES


(1, 'PARACHUTES', 'BASIC', 399, 6000, 43),
(1, 'VIDEO TITLING PACK', 'PASCAL', 7500, 16000, 9),
(3, 'INVENTORY CONTROL', 'COBOL', 3000, 3500, 0),
(4, 'PAYROLL PACKAGE', 'DBASE', 9000, 20000, 7),
(5, 'FINANCIAL ACC.S/W', 'ORACLE', 18000, 85000, 4),
(7, 'CODE GENERATION', 'COBOL', 4500, 20000, 23),
(8, 'READ ME', 'C++', 300, 1200, 84),
(8, 'BOMBS AWAY', 'ASSEMBLY', 750, 5000, 11),
(8, 'VACCINES', 'C', 1900, 3400, 21),
(9, 'HOTEL MANAGEMENT', 'DBASE', 12000, 3500, 4),
(9, 'DEAD LEE', 'PASCAL', 599, 4500, 73),
(11, 'PC UTILITIES', 'C', 725, 5000, 51),
(11, 'TSR HELP PACKAGE', 'ASSEMBLY', 2500, 6000, 6),
(12, 'HOSPITAL MANAGEMENT', 'PASCAL', 1100, 75000, 2),
(12, 'QUIZ MASTER', 'BASIC', 3200, 2100, 15),
(13, 'ISR EDITION', 'C', 900, 700, 6);

SELECT * FROM SOFTWARE;


-- CREATE PROGRAMMER TABLE

CREATE TABLE PROGRAMMER


(
P_ID INT REFERENCES STUDIES(Student_id),
DOB DATE,
DOJ DATE,
GENDER CHAR CHECK(GENDER IN ('M','F')),
PROF1 VARCHAR(15),
PROF2 VARCHAR(15),
SALARY INT CHECK (SALARY>0)
);

INSERT INTO PROGRAMMER VALUES


(1,'21-APR-66','21-APR-92','M','PASCAL','BASIC',3200),
(2,'02-JUL-64','13-NOV-90','M','CLIPPER','COBOL',2800),
(3,'31-JAN-68','21-APR-90','F','COBOL','DBASE',3000),
(4,'30-OCT-68','02-JAN-92','F','C','DBASE',2900),
(5,'24-JUN-70','01-FEB-91','F','C++','ORACLE',4500),
(6,'11-SEP-85','11-OCT-89','M','COBOL','DBASE',2500),
(7,'10-NOV-65','21-APR-90','M','PASCAL','CLIPPER',2800),
(8,'31-AUG-65','21-APR-91','M','ASSEMBLY','C',3000),
(9,'03-MAY-67','28-FEB-91','M','PASCAL','DBASE',3200),
(10,'01-JAN-67','01-DEC-90','F','BASIC','COBOL',2500),
(11,'19-APR-70','20-APR-93','F','C','ASSEMBLY',3600),
(12,'02-DEC-69','02-JAN-92','F','PASCAL','BASIC',3700),
(13,'14-DEC-65','02-MAY-92','F','FOXPRO','C',3500);

SELECT * FROM PROGRAMMER;


/*1) What is the cost of the costliest software development in Basic?*/
SELECT * FROM SOFTWARE;

SELECT TITLE, DEV_IN, SCOST FROM SOFTWARE


WHERE SCOST IN (SELECT MAX(SCOST) FROM SOFTWARE WHERE DEV_IN = 'BASIC');

/*2) Display details of Packages whose sales crossed the 20000 Mark.*/
SELECT TITLE, SCOST, SOLD, (SCOST*SOLD) AS SALES_ABOVE_20000
FROM SOFTWARE
WHERE (SCOST*SOLD) IN (SELECT (SCOST*SOLD) FROM SOFTWARE
WHERE (SCOST*SOLD) > 20000);

/*3) Who are the Programmers who celebrate their


Birthdays during the Current Month?*/
SELECT * FROM PROGRAMMER;

SELECT S.STUDENT_NAME, P.P_ID, P.DOB FROM PROGRAMMER P


INNER JOIN STUDIES S ON S.Student_id = P.P_ID
WHERE MONTH(P.DOB) = MONTH(GETDATE());

/*4) Display the Cost of Package Developed By each Programmer.*/


SELECT * FROM SOFTWARE;
SELECT STUDENT_ID,SUM(DCOST) AS TOTAL_COST FROM SOFTWARE
GROUP BY Student_id
ORDER BY Student_id;

/*5)Display the sales values of the Packages


Developed by each Programmer.*/
SELECT STUDENT_ID, SUM(SCOST*SOLD)AS SALES_VALUE FROM SOFTWARE
GROUP BY Student_id;
/*6) Display the Number of Packages sold by Each Programmer.*/
SELECT STUDENT_ID, SUM(SOLD) AS NO_OF_PACKAGES_SOLD FROM SOFTWARE
GROUP BY Student_id;

/*7)DISPLAY EACH PROGRAMMERS NAME, COSTLIEST AND CHEAPEST PACKAGES


DEVELOPED BY HIM/HER*/
SELECT * FROM SOFTWARE;

ALTER TABLE SOFTWARE


ADD STUDENT_NAME VARCHAR(50);

UPDATE SOFTWARE
SET STUDENT_NAME = (SELECT STUDENT_NAME FROM STUDIES WHERE STUDIES.Student_id =
SOFTWARE.Student_id)
WHERE EXISTS (SELECT STUDENT_NAME FROM STUDIES WHERE STUDIES.Student_id =
SOFTWARE.Student_id);

SELECT STUDENT_ID, STUDENT_NAME,MAX(SCOST) AS COSTLIES_CHEAPEST


FROM SOFTWARE
GROUP BY STUDENT_NAME, Student_id
UNION ALL
SELECT STUDENT_ID, STUDENT_NAME,MIN(SCOST) AS COSTLIES_CHEAPEST
FROM SOFTWARE
GROUP BY STUDENT_NAME, STUDENT_ID;

/*8) Display each institute name with the


number of Courses, Average Cost per Course.*/
SELECT * FROM STUDIES;

SELECT STUDENT_PLACE, COUNT(COURSE) AS NO_OF_COURSES,


AVG(COST) AS AVG_COST
FROM STUDIES
GROUP BY STUDENT_PLACE;

/*9)Display each institute Name with Number of Students.*/


SELECT STUDENT_PLACE, COUNT(STUDENT_ID) AS NO_OF_STUDENTS
FROM STUDIES
GROUP BY STUDENT_PLACE;

/*10)List the programmers (form the software table)


and the institutes they studied.*/
SELECT
SO.STUDENT_NAME,
S.STUDENT_PLACE
FROM STUDIES S INNER JOIN SOFTWARE SO ON S.Student_id = SO.Student_id
GROUP BY S.Student_place, SO.STUDENT_NAME;

/*11)How many packages were developed by students,


who studied in institute that charge thelowest course fee?*/
SELECT
COUNT(SO.TITLE) AS TOTAL_PACKAGES_DEVELOPED
FROM SOFTWARE SO INNER JOIN STUDIES S ON S.Student_id = SO.Student_id
WHERE S.COST = (SELECT MIN(COST) FROM STUDIES);

/*12)What is the AVG salary for those whose


software sales is more than 50,000/-.*/
SELECT * FROM SOFTWARE;
SELECT
AVG(P.SALARY) AS AVG_SALARY
FROM PROGRAMMER P INNER JOIN SOFTWARE SO ON SO.Student_id = P.P_ID
WHERE (SCOST*SOLD) >50000;

/*13) Which language listed in


prof1, prof2 has not been used to develop any package.*/

SELECT * FROM SOFTWARE;


SELECT * FROM PROGRAMMER;

SELECT
PROF1 FROM PROGRAMMER
WHERE PROF1 NOT IN (SELECT DEV_IN FROM SOFTWARE)
UNION
SELECT
PROF2 FROM PROGRAMMER
WHERE PROF2 NOT IN (SELECT DEV_IN FROM SOFTWARE);

/*14)Display the total sales value of the software, institute wise.*/


SELECT * FROM STUDIES;
SELECT * FROM SOFTWARE;

SELECT
S.STUDENT_PLACE,
SUM(SO.SCOST*SO.SOLD) AS TOTAL_SALES
FROM SOFTWARE SO INNER JOIN STUDIES S ON S.Student_id = SO.Student_id
GROUP BY S.STUDENT_PLACE;

/*15)Display the details of the Software Developed in C By female programmers of


Pragathi.*/
SELECT
S.STUDENT_NAME,
S.STUDENT_PLACE,
SO.DEV_IN,
SO.TITLE,
SO.SCOST,
SO.DCOST,
SO.SOLD,
P.GENDER
FROM STUDIES S INNER JOIN SOFTWARE SO ON SO.Student_id = S.Student_id
INNER JOIN PROGRAMMER P ON P.P_ID = S.Student_id
WHERE SO.DEV_IN = 'C' AND P.GENDER = 'F';

/*16)Display the details of the packages


developed in Pascal by the Female Programmers.*/

SELECT
SO.STUDENT_NAME,
P.GENDER,
SO.DEV_IN,
SO.TITLE,
SO.SCOST,
SO.DCOST,
SO.SOLD
FROM SOFTWARE SO INNER JOIN PROGRAMMER P ON P.P_ID = SO.Student_id
WHERE SO.DEV_IN = 'PASCAL' AND P.GENDER = 'F';
/*17)Which language has been stated as the
proficiency by most of the Programmers?*/

WITH CTE AS
(
SELECT PROF1, COUNT(PROF1) AS TOTAL FROM PROGRAMMER
GROUP BY PROF1
)
SELECT PROF1 FROM CTE
WHERE TOTAL = (SELECT MAX(TOTAL) FROM CTE);

WITH CTE1 AS
(
SELECT PROF2, COUNT(PROF2) AS TOTAL FROM PROGRAMMER
GROUP BY PROF2
)
SELECT PROF2 FROM CTE1
WHERE TOTAL = (SELECT MAX(TOTAL) FROM CTE1);

/*18)Who is the Author of the Costliest Package?*/


SELECT * FROM SOFTWARE
WHERE STUDENT_NAME IN (SELECT STUDENT_NAME FROM SOFTWARE
WHERE SCOST IN (SELECT MAX(SCOST) FROM SOFTWARE));

/*19) Which package has the Highest Development cost*/


SELECT * FROM SOFTWARE
WHERE DCOST IN (SELECT DCOST FROM SOFTWARE
WHERE DCOST IN (SELECT MAX(DCOST) FROM SOFTWARE));

/*20) Who is the Highest Paid Female COBOL Programmer?*/


SELECT * FROM PROGRAMMER;
SELECT * FROM PROGRAMMER
WHERE GENDER = 'F'
AND PROF1 = 'COBOL' OR PROF2 = 'COBOL'
AND SALARY IN (SELECT MAX(SALARY) FROM PROGRAMMER);

ALTER TABLE PROGRAMMER


ADD STUDENT_NAME VARCHAR(20);

UPDATE PROGRAMMER
SET STUDENT_NAME = (SELECT STUDENT_NAME FROM STUDIES WHERE STUDIES.Student_id =
PROGRAMMER.P_ID)
WHERE EXISTS (SELECT STUDENT_NAME FROM STUDIES WHERE STUDIES.Student_id =
PROGRAMMER.P_ID);

/*21) Display the Name of Programmers and Their Packages.*/


SELECT
P.STUDENT_NAME,
SO. TITLE
FROM PROGRAMMER P INNER JOIN SOFTWARE SO ON SO.Student_id = P.P_ID;

/*22) Display the Number of Packages in Each Language Except C and C++.*/
SELECT DEV_IN, COUNT(TITLE) AS TOTAL FROM SOFTWARE
WHERE DEV_IN NOT IN ('C', 'C++')
GROUP BY DEV_IN;

/*23) Display AVG Difference between SCOST, DCOST for Each Package.*/
SELECT * FROM SOFTWARE;
SELECT DEV_IN, AVG(DCOST-SCOST) AS AVG_DIFF FROM SOFTWARE
GROUP BY DEV_IN;

/*24) Display the total SCOST, DCOST and amount to Be Recovered


for each Programmer for Those Whose Cost has not yet been Recovered.*/
SELECT
STUDENT_NAME,
SUM(SCOST*SOLD) AS COST,
SUM(SCOST) SCOST,
SUM(DCOST) AS DCOST,
SUM(DCOST-(SOLD*SCOST)) AS TO_BE_RECOVERED
FROM SOFTWARE
GROUP BY STUDENT_NAME
HAVING SUM(DCOST)>SUM(SOLD*SCOST);

/*25) Who is the Highest Paid C Programmers*/

SELECT * FROM PROGRAMMER


WHERE SALARY IN (SELECT MAX(SALARY) FROM PROGRAMMER
WHERE PROF1 = 'C' OR PROF2 = 'C');

/*26) Who is the Highest Paid Female COBOL Programmer?*/


SELECT * FROM PROGRAMMER
WHERE GENDER = 'F'
AND PROF1 = 'COBOL' OR PROF2 = 'COBOL'
AND SALARY IN (SELECT MAX(SALARY) FROM PROGRAMMER);

CREATE INDEX IX_P_ID_SALARY


ON PROGRAMMER (P_ID ASC, SALARY ASC);

SP_HELPINDEX PROGRAMMER;

You might also like