0% found this document useful (0 votes)
49 views29 pages

Assignment 7

Uploaded by

rohit rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views29 pages

Assignment 7

Uploaded by

rohit rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

CREATE DATABASE ASSIGNMENT;

USE ASSIGNMENT;

CREATE TABLE Studies (PNAME VARCHAR(25) NOT NULL, INSTITUTE VARCHAR(25) NOT NULL,
COURSE VARCHAR(15) NOT NULL, COURSE_FEE INT NOT NULL);

CREATE TABLE Software (PNAME VARCHAR(25) NOT NULL, TITLE VARCHAR(25) NOT NULL,
DEVELOPIN VARCHAR(15) NOT NULL, SCOST FLOAT NOT NULL, DCOST FLOAT NOT NULL, SOLD INT
NOT NULL);

CREATE TABLE Programmer (PNAME VARCHAR(25) NOT NULL, DOB DATE NOT NULL, DOJ DATE NOT
NULL, GENDER CHAR(1) NOT NULL, PROF1 VARCHAR(10) NOT NULL, PROF2 VARCHAR(10) NOT NULL,
SALARY INT NOT NULL);

SELECT * FROM Studies;

SELECT * FROM Software;

SELECT * FROM Programmer;

INSERT INTO Studies (PNAME, INSTITUTE, COURSE, COURSE_FEE) VALUES

('ANAND', 'SABHARI', 'PGDCA', 4500),

('ALTAF', 'COIT', 'DCA', 7200),

('JULIANA', 'BDPS', 'MCA', 22000),

('KAMALA', 'PRAGATHI', 'DCA', 5000),

('MARY', 'SABHARI', 'PGDCA', 4500),

('NELSON', 'PRAGATHI', 'DAP', 6200),

('PATRICK', 'PRAGATHI', 'DCAP', 5200),

('QADIR', 'APPLE', 'HDCA', 14000),

('RAMESH', 'SABHARI', 'PGDCA', 4500),

('REBECCA', 'BRILLIANT', 'DCAP', 11000),

('REMITHA', 'BDPS', 'DCS', 6000),

('REVATHI', 'SABHARI', 'DAP', 5000),

('VIJAYA', 'BDPS', 'DCA', 48000);


INSERT INTO Software (PNAME, TITLE, DEVELOPIN, SCOST, DCOST, SOLD) VALUES

('MARY', 'README', 'CPP', 300, 1200, 84),

('ANAND', 'PARACHUTES', 'BASIC', 399.95, 6000, 43),

('ANAND', 'VIDEO TITLING', 'PASCAL', 7500, 16000, 9),

('JULIANA', 'INVENTORY', 'COBOL', 3000, 3500, 0),

('KAMALA', 'PAYROLL PKG.', 'DBASE', 9000, 20000, 7),

('MARY', 'FINANCIAL ACCT.', 'ORACLE', 18000, 85000, 4),

('MARY', 'CODE GENERATOR', 'C', 4500, 20000, 23),

('PATTRICK', 'README', 'CPP', 300, 1200, 84),

('QADIR', 'BOMBS AWAY', 'ASSEMBLY', 750, 3000, 11),

('QADIR', 'VACCINES', 'C', 1900, 3100, 21),

('RAMESH', 'HOTEL MGMT.', 'DBASE', 13000, 35000, 4),

('RAMESH', 'DEAD LEE', 'PASCAL', 599.95, 4500, 73),

('REMITHA', 'PC UTILITIES', 'C', 725, 5000, 51),

('REMITHA', 'TSR HELP PKG.', 'ASSEMBLY', 2500, 6000, 7),

('REVATHI', 'HOSPITAL MGMT.', 'PASCAL', 1100, 75000, 2),

('VIJAYA', 'TSR EDITOR', 'C', 900, 700, 6);

INSERT INTO Programmer (PNAME, DOB, DOJ, GENDER, PROF1, PROF2, SALARY) VALUES

('ANAND', '12-Apr-66', '21-Apr-92', 'M', 'PASCAL', 'BASIC', 3200),

('ALTAF', '02-Jul-64', '13-Nov-90', 'M', 'CLIPPER', 'COBOL', 2800),

('JULIANA', '31-Jan-60', '21-Apr-90', 'F', 'COBOL', 'DBASE', 3000),

('KAMALA', '30-Oct-68', '02-Jan-92', 'F', 'C', 'DBASE', 2900),

('MARY', '24-Jun-70', '01-Feb-91', 'F', 'CPP', 'ORACLE', 4500),

('NELSON', '11-Sep-85', '11-Oct-89', 'M', 'COBOL', 'DBASE', 2500),

('PATTRICK', '10-Nov-65', '21-Apr-90', 'M', 'PASCAL', 'CLIPPER', 2800),

('QADIR', '31-Aug-65', '21-Apr-91', 'M', 'ASSEMBLY', 'C', 3000),

('RAMESH', '03-May-67', '28-Feb-91', 'M', 'PASCAL', 'DBASE', 3200),

('REBECCA', '01-Jan-67', '01-Dec-90', 'F', 'BASIC', 'COBOL', 2500),

('REMITHA', '19-Apr-70', '20-Apr-93', 'F', 'C', 'ASSEMBLY', 3600),


('REVATHI', '02-Dec-69', '02-Jan-92', 'F', 'PASCAL', 'BASIC', 3700),

('VIJAYA', '14-Dec-65', '02-May-92', 'F', 'FOXPRO', 'C', 3500);

-- 1. Find out the selling cost average for packages developed in Pascal

SELECT AVG(SCOST) AS Pascal_Selling_Cost_Avg

FROM Software

WHERE DEVELOPIN= 'PASCAL'

-- 2. Display the names and ages of all programmers.

SELECT PNAME, DATEDIFF(YEAR,DOB, GETDATE()) AS AGE

FROM Programmer;

-- 3. Display the names of those who have done the DAP Course.

SELECT PNAME FROM Studies

WHERE Course= 'DAP';

-- 4. Display the names and date of birth of all programmers born in January

SELECT PNAME, DOB FROM Programmer

WHERE DOB LIKE '%01%';

-- 5. What is the highest number of copies sold by a package?

SELECT MAX(SOLD) AS Highest_Copies_Sold

FROM Software;

--- SELECT TITLE, MAX(SOLD) AS Highest_Copies_Sold

--- FROM Software


--- GROUP BY TITLE

--- ORDER BY Highest_Copies_Sold DESC

-- 6. Display lowest course fee.

SELECT MIN(COURSE_FEE) AS Lowest_Course_Fee

FROM Studies;

-- 7. How many programmers have done the PGDCA Course?

SELECT COUNT(PNAME) AS Ct

FROM Studies

WHERE COURSE= 'PGDCA';

-- 8. How much revenue has been earned through sales of packages developed in C?

SELECT SUM(SCOST) AS Sales_through_C

FROM Software

WHERE DEVELOPIN= 'C';

-- 9. Display the details of the software developed by Ramesh.

SELECT *

FROM Software

WHERE PNAME= 'Ramesh';

-- 10. How many programmers studied at Sabhari

SELECT COUNT(PNAME) AS Ct

FROM Studies

WHERE Institute= 'Sabhari';


-- 11. Display details of packages whose sales crossed the 2000 mark.

Select *

FROM Software

WHERE SCOST>2000;

-- 12. Display the details of packages for which development costs have been recovered.

SELECT *

FROM Software

WHERE DCOST>=SCOST;

-- 13. What is the cost of the costliest software development in Basic?

SELECT MAX(DCOST) AS Costliest_Software

FROM SOFTWARE

WHERE DEVELOPIN = 'BASIC'

-- 14. How many packages have been developed in dBase?

SELECT COUNT(DEVELOPIN) AS Ct_of_dBase

FROM SOFTWARE

WHERE DEVELOPIN = 'DBASE'

-- 15. How many programmers studied in Pragathi?

SELECT COUNT(PNAME) AS Ct FROM STUDIES WHERE INSTITUTE = 'Pragathi'

-- 16. How many programmers paid 5000 to 10000 for their course?
SELECT COUNT(PNAME) AS Ct FROM Studies WHERE Course_Fee BETWEEN 5000 AND 10000

-- 17. What is the average course fee?

SELECT AVG(Course_Fee) AS AVG_Course_Fee FROM STUDIES

-- 18. Display the details of the programmers knowing C.

SELECT * FROM Programmer

WHERE PROF1 = 'C' OR Prof2= 'C'

-- 19. How many programmers know either COBOL or Pascal?

SELECT COUNT(PNAME) AS Ct_Cobol_and_Pascal FROM Programmer

WHERE PROF1 = 'COBOL' OR Prof1= 'PASCAL' OR PROF2 = 'COBOL' OR PROF2= 'PASCAL'

-- 20. How many programmers don’t know Pascal and C?

SELECT COUNT(PNAME) AS Ct FROM Programmer

WHERE NOT PROF1= 'C' AND NOT PROF1= 'Pascal' AND NOT PROF2= 'C' AND NOT PROF2= 'Pascal'

-- 21. How old is the oldest male programmer?

SELECT MAX(DATEDIFF(YEAR, DOB, GETDATE())) AS Oldest_Male_Programmer

FROM PROGRAMMER

WHERE GENDER= 'M'

-- 22. What is the average age of female programmers?

SELECT AVG(DATEDIFF(YEAR, DOB, GETDATE())) AS AVG_Female_Age

FROM PROGRAMMER
WHERE GENDER = 'F'

-- 23. Calculate the experience in years for each programmer and display with their names in
descending order.

SELECT PNAME, DATEDIFF(YEAR, DOJ, GETDATE()) AS Experience

FROM PROGRAMMER

ORDER BY Experience DESC

-- 24. Who are the programmers who celebrate their birthdays during the current month?

SELECT PNAME

FROM PROGRAMMER

WHERE DOB LIKE '%8%'

-- TAKING CURRENT MONTH AS AUGUST FOR NOW

-- 25. How many female programmers are there?

SELECT COUNT(PNAME) Female_Ct FROM PROGRAMMER

WHERE GENDER = 'F'

-- 26. What are the languages studied by male programmers?

SELECT P.PNAME, GENDER, PROF1, PROF2

FROM PROGRAMMER AS P

FULL OUTER JOIN

STUDIES AS S

ON P.PNAME = S.PNAME

WHERE P.GENDER = 'M'


-- Considering PROF1 and PROF2 as the name of language known by respective programmers.

-- 27. What is the average salary?

SELECT AVG(SALARY) avg_salary FROM PROGRAMMER

-- 28. How many people draw a salary between 2000 to 4000?

SELECT COUNT(PNAME) AS ct

FROM PROGRAMMER

WHERE SALARY BETWEEN 2000 AND 4000

-- 29. Display the details of those who don’t know Clipper, COBOL or Pascal.

SELECT * FROM PROGRAMMER

WHERE PROF1 != 'Clipper' AND PROF1 != 'COBOL' AND PROF1 != 'Pascal' AND PROF2 != 'Clipper' AND
PROF2 != 'COBOL' AND PROF2 != 'Pascal'

-- 30. Display the cost of packages developed by each programmer

SELECT PNAME, SUM(DCOST) AS Developed_Package_Cost FROM SOFTWARE

GROUP BY PNAME

-- 31. Display the sales value of the packages developed by each programmer.

SELECT PNAME, SUM(SCOST) AS Sales_Package_Cost FROM SOFTWARE

GROUP BY PNAME

-- 32. Display the number of packages sold by each programmer.


SELECT PNAME, SUM(SOLD) AS Sold_Package FROM SOFTWARE

GROUP BY PNAME

-- 33. Display the sales cost of the packages developed by each programmer language wise.

SELECT PNAME, DEVELOPIN, SUM(SCOST) AS sales_cost_of_packages

FROM Software

GROUP BY PNAME, DEVELOPIN

-- 34. Display each language name with the average development cost, average selling cost and
average price per copy.

SELECT DEVELOPIN, AVG(SCOST), AVG(DCOST), IIF(SUM(SOLD) <> 0, SUM(SCOST)/SUM(SOLD), 0)


FROM Software

GROUP BY DEVELOPIN

SELECT DEVELOPIN, AVG(DCOST), AVG(SCOST) ,AVG(SCOST/SOLD)

FROM Software

GROUP BY DEVELOPIN

-- 35. Display each programmer’s name and the costliest and cheapest packages developed by him
or her.

SELECT PNAME, MAX(DCOST) AS COSTLIEST , MIN(DCOST) AS CHEAPEST

FROM Software

GROUP BY PNAME

-- 36. Display each institute’s name with the number of courses and the average cost per course.

SELECT INSTITUTE, COUNT(COURSE) Course_Ct, AVG(COURSE_FEE) AS AVG_Cost FROM Studies

GROUP BY INSTITUTE
-- 37. Display each institute’s name with the number of students.

SELECT INSTITUTE, COUNT(PNAME) AS number_of_students FROM Studies

GROUP BY INSTITUTE

-- 38. Display names of male and female programmers along with their gender.

SELECT PNAME, GENDER FROM PROGRAMMER

-- GROUP BY PNAME, GENDER

WHERE GENDER = 'M'

UNION

SELECT PNAME, GENDER FROM PROGRAMMER

WHERE GENDER = 'F'

-- 39. Display the name of programmers and their packages.

SELECT PNAME, DEVELOPIN AS Package FROM Software

-- 40. Display the number of packages in each language except C and C++.

SELECT COUNT(TITLE) AS No_of_Package FROM Software

WHERE DEVELOPIN != 'C' AND DEVELOPIN != 'CPP'

-- 41. Display the number of packages in each language for which development cost is less than 1000
(Dicuss)

SELECT DEVELOPIN, COUNT(Title) AS Package_Ct FROM Software

WHERE DCOST < 1000

GROUP BY DEVELOPIN

--42. Display the average difference between SCOST and DCOST for each package.
SELECT TITLE AS Package, AVG(DCOST - SCOST) AS Avg_Difference FROM Software

GROUP BY TITLE

SELECT TITLE, AVG(DCOST) - AVG(SCOST) FROM Software

GROUP BY TITLE

-- 43. Display the total SCOST, DCOST and the amount to be recovered for each programmer whose
cost has not yet been recovered.

SELECT PNAME, SUM(SCOST), SUM(DCOST), SUM(SCOST*SOLD) - SUM(DCOST) AS


Amount_to_be_Recovered

FROM SOFTWARE

GROUP BY PNAME

HAVING SUM(SCOST*SOLD) < SUM(DCOST)

-- 44. Display the highest, lowest and average salaries for those earning more than 2000.

SELECT MAX(SALARY) AS Highest_Salary, MIN(SALARY) AS Lowest_Salary, AVG(SALARY) AS


Average_Salary FROM Programmer

WHERE SALARY > 2000;

-- 45. Who is the highest paid C programmer?

SELECT PNAME AS Highest_Paid_Programmer_in_C, Salary FROM Programmer

WHERE SALARY= (SELECT MAX(SALARY) AS Salary

FROM Programmer

WHERE PROF1 = 'C' OR PROF2 = 'C')

-- 46. Who is the highest paid female COBOL programmer?

SELECT PNAME AS Highest_Paid_Programmer, GENDER, Salary FROM Programmer


WHERE SALARY = (SELECT MAX(SALARY) AS Salary FROM Programmer

WHERE GENDER = 'F' AND (PROF1 = 'COBOL' OR PROF2 = 'COBOL'))

AND GENDER = 'F'

-- 47. Display the names of the highest paid programmers for each language.

select pname from programmer where SALARY in

(select max(SALARY) from Programmer)

select * from Programmer

select p.PNAME,prof_max_sal.prof,prof_max_sal.max_sal from

(select prof,max(sal) as max_sal from

(select PROF1 as prof,max(SALARY) as sal from Programmer group by PROF1

union all

select PROF2, max(SALARY) as sal from Programmer group by PROF2) as prof_sal

group by prof) as prof_max_sal inner join Programmer p

on prof_max_sal.prof = p.PROF1 or prof_max_sal.prof = p.PROF2

where prof_max_sal.max_sal = p.SALARY

with prof_sal as

( select PROF1 as prof,max(SALARY) as sal from Programmer group by PROF1

union all

select PROF2, max(SALARY) as sal from Programmer group by PROF2

),

prof_max_sal as

( select prof,max(sal) as max_sal from prof_sal group by prof

)
select p.PNAME,prof_max_sal.prof,prof_max_sal.max_sal from prof_max_sal inner join Programmer
p

on prof_max_sal.prof = p.PROF1 or prof_max_sal.prof = p.PROF2

where prof_max_sal.max_sal = p.SALARY

WITH MAIN_CTE AS

(WITH CTE AS

(SELECT Prof1, SALARY From Programmer

UNION

SELECT Prof2, SALARY From Programmer)

SELECT PROF1, MAX(SALARY) AS Maximum_Salary_Each_Program FROM CTE

GROUP BY PROF1)

SELECT PNAME FROM PROGRAMMER AS P

INNER JOIN

MAIN_CTE AS M

ON P.Prof1 = M.Prof1 OR P.Prof2 = M.Prof1 AND P.Salary = M.Maximum_Salary_Each_Program


WITH CTE AS

SELECT Prof1, Max(SALARY)Salary From Programmer group by Prof1

UNION

SELECT Prof2, Max(SALARY)Salary From Programmer group by Prof2

SELECT PNAME, C.SALARY FROM PROGRAMMER AS P

INNER JOIN

CTE AS C

ON P.Prof1 = C.Prof1 OR P.Prof2 = C.Prof1 AND P.Salary = C.Salary

GROUP BY PNAME, PROF1, PROF2

SELECT * FROM PROGRAMMER

SELECT * FROM Software

-- 48. Who is the least experienced programmer

SELECT PNAME FROM Programmer

WHERE DATEDIFF(YEAR, DOJ, GETDATE()) = (SELECT MIN(DATEDIFF(YEAR, DOJ, GETDATE())) FROM


Programmer)

-- 49. Who is the most experienced male programmer knowing PASCAL?

SELECT PNAME, DOJ FROM Programmer

WHERE DOJ= (SELECT MIN(DOJ) FROM Programmer

WHERE PROF1 ='Pascal' OR PROF2 = 'Pascal')

-- 50. Which language is known by only one programmer?


SELECT PROF1 FROM PROGRAMMER

GROUP BY PROF1

HAVING PROF1 NOT IN

(SELECT PROF2 FROM PROGRAMMER)

AND COUNT(PROF1)=1

UNION

SELECT PROF2 FROM PROGRAMMER

GROUP BY PROF2

HAVING PROF2 NOT IN

(SELECT PROF1 FROM PROGRAMMER)

AND COUNT(PROF2)=1;

-- 51. Who is the above programmer referred in 50?

WITH NAME_OF_PROGRAMMER AS

( SELECT PROF1 FROM PROGRAMMER

GROUP BY PROF1

HAVING PROF1 NOT IN

(SELECT PROF2 FROM PROGRAMMER)

AND COUNT(PROF1)=1

UNION

SELECT PROF2 FROM PROGRAMMER

GROUP BY PROF2

HAVING PROF2 NOT IN

(SELECT PROF1 FROM PROGRAMMER)

AND COUNT(PROF2)=1)

SELECT PNAME FROM NAME_OF_PROGRAMMER AS NP

INNER JOIN

PROGRAMMER P
ON NP.PROF1 = P.PROF1 OR NP.PROF1 = P.PROF2

-- 52. Who is the youngest programmer knowing dBase?

SELECT PNAME FROM Programmer

WHERE DOB = (SELECT MAX(DOB) FROM Programmer

WHERE PROF1 = 'DBASE' OR PROF2 = 'DBASE')

-- 53. Which female programmer earning more than 3000 does not know C, C++, Oracle or dBase?

SELECT PNAME FROM Programmer

WHERE GENDER = 'F' AND SALARY >= 3000 AND

(PROF1 != 'C' AND PROF1 != 'CPP' AND PROF1 != 'Oracle' AND PROF1 != 'DBASE') AND

(PROF2 != 'C' AND PROF2 != 'CPP' AND PROF2 != 'Oracle' AND PROF2 != 'DBASE')

-- 54. Which institute has the most number of students?

WITH Max_Student AS

(SELECT institute, COUNT(PNAME) AS Ct FROM Studies

GROUP BY INSTITUTE)

SELECT S.INSTITUTE, MAX(Ct) CT FROM Max_Student AS MS

INNER JOIN

Studies AS S

ON MS.INSTITUTE = S.INSTITUTE

GROUP BY S.INSTITUTE, MS.Ct

HAVING Ct= (SELECT MAX(Ct) FROM Max_Student)

-- 55. What is the costliest course?


SELECT * FROM Studies

WHERE COURSE_FEE = (SELECT MAX(COURSE_FEE) FROM Studies)

-- 56. Which course has been done by the most number of students?

WITH Max_Course AS

(SELECT COURSE, COUNT(PNAME) AS Ct FROM Studies

GROUP BY COURSE)

SELECT MC.COURSE, MC.Ct FROM Max_Course AS MC

JOIN

Studies AS S

ON MC.Course = S.COURSE

GROUP BY MC.COURSE, MC.CT

HAVING Ct = (SELECT MAX(Ct) FROM Max_Course)

--57. Which institute conducts the costliest course?

SELECT INSTITUTE FROM Studies

WHERE COURSE_FEE = (SELECT MAX(COURSE_FEE) FROM Studies)

-- 58. Display the name of the institute and the course which has below average course fee.

SELECT INSTITUTE, COURSE FROM Studies

WHERE COURSE_FEE <= (SELECT AVG(COURSE_FEE) FROM Studies)

-- 59. Display the names of the courses whose fees are within 1000 (+ or -) of the average fee.

SELECT COURSE FROM Studies

WHERE COURSE_FEE =
(SELECT (AVG(COURSE_FEE) + 1000) AS Higher_Avg_FEE FROM Studies) BETWEEN (SELECT
(AVG(COURSE_FEE) - 1000) AS Lower_Avg_FEE FROM Studies)

WITH AVG_PRICE AS

(SELECT COURSE, (AVG(COURSE_FEE) + 1000) AS Higher_Avg_FEE, (AVG(COURSE_FEE) - 1000) AS


Lower_Avg_FEE FROM Studies

GROUP BY COURSE)

SELECT S.COURSE, S.COURSE_FEE FROM AVG_PRICE AS AP

FULL OUTER JOIN

Studies AS S

ON S.COURSE = AP.COURSE

HAVING COURSE_FEE BETWEEN (SELECT (AVG(COURSE_FEE) + 1000) AS Higher_Avg_FEE FROM


Studies) AND (SELECT (AVG(COURSE_FEE) - 1000) AS Lower_Avg_FEE FROM Studies)

-- 60. Which package has the highest development cost

SELECT TITLE AS Package from Software

WHERE DCOST = ( SELECT MAX(DCOST) FROM Software)

-- 61. Which course has below average number of students?

CREATE TABLE #AVGCNT (Course VARCHAR(20), Counts INT)

SELECT * FROM #AVGCNT

INSERT INTO #AVGCNT (Course, Counts) SELECT COURSE, COUNT(PNAME) FROM Studies GROUP BY
COURSE

SELECT Course, Counts FROM #AVGCNT WHERE Counts < = (SELECT AVG(Counts) FROM #AVGCNT)

SELECT COURSE, COUNT(*) AS num_students

FROM studies
GROUP BY COURSE

HAVING num_students < (SELECT AVG(num_students) FROM (SELECT COURSE, COUNT(*) AS


num_students FROM studies GROUP BY COURSE) AS course_counts);

WITH Count_Students AS

(SELECT COURSE, COUNT(PNAME) AS Ct FROM Studies

GROUP BY COURSE)

SELECT S.Course, AVG(Ct) AS Avg_Ct FROM Count_Students AS CS

FULL OUTER JOIN

Studies AS S

ON S.COURSE = CS.COURSE

GROUP BY S.COURSE

HAVING Ct < (SELECT AVG(Ct) FROM Count_Students

-- 62. Which package has the lowest selling cost?

SELECT TITLE AS Package FROM Software

WHERE SCOST = (SELECT MIN(SCOST) FROM Software)

-- 63. Who developed the package that has sold the least number of copies?

SELECT PNAME FROM Software

WHERE SOLD = (SELECT MIN(SOLD) FROM Software)

-- 64. Which language has used to develop the package, which has the highest sales amount?

SELECT DEVELOPIN FROM SOFTWARE


WHERE SCOST = (SELECT MAX(SCOST) FROM Software)

-- 65. How many copies of package that has the least difference between development and selling
cost were sold.

SELECT COUNT(TITLE) AS Package_Ct FROM Software

WHERE DCOST-SCOST = (SELECT MIN(DCOST - SCOST) FROM Software)

-- 66. Which is the costliest package developed in Pascal?

SELECT TITLE AS Package FROM Software

WHERE DCOST = (SELECT MAX(DCOST) FROM Software WHERE DEVELOPIN = 'PASCAL')

-- 67. Which language was used to develop the most number of packages?

CREATE TABLE #LANGCNT (Packages VARCHAR(20), Developin VARCHAR(20), Ct INT)

INSERT INTO #LANGCNT SELECT TITLE AS Packages, DEVELOPIN, COUNT(DEVELOPIN) AS Ct FROM


Software

GROUP BY TITLE, DEVELOPIN

SELECT * FROM #LANGCNT

SELECT DEVELOPIN, MAX(Ct) AS Ct FROM #LANGCNT

GROUP BY DEVELOPIN

ORDER BY Ct DESC

SELECT DEVELOPIN FROM SOFTWARE GROUP BY DEVELOPIN HAVING DEVELOPIN = (SELECT


MAX(DEVELOPIN) FROM SOFTWARE);

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

-- SELECT TITLE AS Packages, DEVELOPIN, COUNT(DEVELOPIN) AS Ct FROM Software

-- GROUP BY TITLE, DEVELOPIN


-- HAVING Ct = (SELECT MAX(Ct) FROM Software)

SELECT DEVELOPIN AS Language, COUNT(*) AS NumberOfPackages

FROM Software

GROUP BY DEVELOPIN

ORDER BY NumberOfPackages DESC

LIMIT 1;

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

-- 68. Which programmer has developed the highest number of packages?

SELECT PNAME FROM SOFTWARE GROUP BY PNAME HAVING PNAME = (SELECT MAX(PNAME)
FROM SOFTWARE);

WITH Ct_Packages AS

(SELECT PNAME, COUNT(TITLE) AS Ct FROM Software

GROUP BY PNAME)

SELECT CP.PNAME, Ct FROM Software AS S

FULL OUTER JOIN

Ct_Packages AS CP

ON S.PNAME = CP.PNAME

GROUP BY CP.PNAME

-- 69. Who is the author of the costliest package?

SELECT PNAME FROM Software

WHERE DCOST = (SELECT MAX(DCOST) FROM SOFTWARE)

-- 70. Display the names of the packages which have sold less than the average number of copies.
SELECT TITLE AS Packages, SOLD FROM Software

WHERE SOLD < (SELECT AVG(SOLD) AS Avg_Sold FROM Software)

-- 71. Who are the authors of the packages which have recovered more than double the
development cost?

SELECT PNAME FROM Software

WHERE SOLD*SCOST > = 2*DCOST

-- 72. Display the programmer names and the cheapest packages developed by them in each
language.

SELECT PNAME, TITLE AS Packages FROM Software

WHERE DCOST in (SELECT MIN(DCOST) AS Min_Cost FROM Software

GROUP BY DEVELOPIN)

-- 73. Display the language used by each programmer to develop the highest selling and lowest
selling package.

SELECT PNAME, DEVELOPIN FROM Software

WHERE SOLD IN (SELECT MAX(SOLD) AS Maximum FROM Software GROUP BY PNAME)

UNION

SELECT PNAME, DEVELOPIN FROM Software

WHERE SOLD IN (SELECT MIN(SOLD) AS Maximum FROM Software GROUP BY PNAME)

-- 74. Who is the youngest male programmer born in 1965?

SELECT PNAME, DOB FROM programmer WHERE DATEDIFF(DD,DOB,GETDATE())=

(SELECT MIN(DATEDIFF(DD,DOB,GETDATE())) FROM Programmer WHERE year(DOB)=1965 AND

GENDER='M')

-- QUERY 75. Who is the oldest Female Programmer who joined in 1992?
SELECT PNAME,DOB,YEAR(DOJ) FROM Programmer WHERE DATEDIFF(DD,DOB,GETDATE())=

(SELECT MAX(DATEDIFF(DD,DOB,GETDATE())) FROM Programmer WHERE YEAR(DOJ) =1992);

--QUERY 76. In which year was the most number of Programmers born.

CREATE TABLE #TEMP (YOB INT, CNT INT)

INSERT INTO #TEMP

SELECT YEAR(DOB),COUNT(YEAR(DOB)) FROM programmer GROUP BY YEAR(DOB)

SELECT YOB, CNT FROM #TEMP WHERE CNT= (SELECT MAX(CNT) FROM #TEMP)

--QUERY 77. In which month did most number of programmers join?

CREATE TABLE #MOJ (MOJ INT, CNT INT)

INSERT INTO #MOJ

SELECT MONTH(DOJ),COUNT(MONTH(DOJ)) FROM programmer GROUP BY MONTH(DOJ)

SELECT MOJ, CNT FROM #MOJ WHERE CNT= (SELECT MAX(CNT) FROM #MOJ)

--QUERY 78. In which language are most of the programmer’s proficient.

CREATE TABLE #PCNT (PR VARCHAR(20), CNT INT)

CREATE TABLE #PsCNT (PRs VARCHAR(20), sCNT INT)

INSERT INTO #PCNT

SELECT PROF1, COUNT(PROF1) FROM programmer GROUP BY PROF1 UNION ALL

SELECT PROF2, COUNT(PROF2) FROM programmer GROUP BY PROF2


INSERT INTO #PsCNT

SELECT PR, SUM(CNT) FROM #PCNT GROUP BY PR

SELECT PRs, sCNT FROM #PsCNT WHERE sCNT =

(SELECT MAX(sCNT) FROM #PsCNT)

--QUERY 79. Who are the male programmers earning below the AVG salary of Female Programmers?

SELECT PNAME, SALARY FROM Programmer WHERE GENDER = 'M' AND SALARY <

(SELECT(AVG(SALARY))FROM Programmer WHERE GENDER = 'F')

--QUERY 80. Who are the Female Programmers earning more than the Highest Paid male?

SELECT PNAME, SALARY FROM Programmer WHERE GENDER='F' AND

SALARY > (SELECT MAX (SALARY) FROM Programmer WHERE GENDER ='M')

--QUERY 81. Which language has been stated as the proficiency by most of the Programmers?

CREATE TABLE #PCNT (PR VARCHAR(20), CNT INT)

CREATE TABLE #PsCNT (PRs VARCHAR(20), sCNT INT)

INSERT INTO #PCNT

SELECT PROF1, COUNT(PROF1) FROM programmer GROUP BY PROF1 UNION ALL

SELECT PROF2, COUNT(PROF2) FROM programmer GROUP BY PROF2

INSERT INTO #PsCNT

SELECT PR, SUM(CNT) FROM #PCNT GROUP BY PR

SELECT PRs, sCNT FROM #PsCNT WHERE sCNT =

(SELECT MAX(sCNT) FROM #PsCNT)


--QUERY 82. Display the details of those who are drawing the same salary.

SELECT A.PNAME, A.SALARY FROM Programmer A

INNER JOIN

PROGRAMMER B ON A.SALARY = B.SALARY AND A.PNAME != B.PNAME

ORDER BY A.SALARY

--QUERY 83. Display the details of the Software Developed by the Male Programmers Earning More
than 3000/-.

SELECT * FROM software WHERE PNAME IN

(SELECT PNAME FROM programmer WHERE SALARY > 3000 AND GENDER='M')

--QUERY 84. Display the details of the packages developed in Pascal by the Female Programmers.

SELECT * FROM Programmer P, Software S

WHERE P.PNAME=S.PNAME AND GENDER='F' AND DEVELOPIN= 'PASCAL'

--QUERY 85. Display the details of the Programmers who joined before 1990.

SELECT * FROM Programmer WHERE YEAR(DOJ) < 1990

--QUERY 86. Display the details of the Software Developed in C By female programmers of Pragathi.

SELECT SW.*,P.GENDER,ST.INSTITUTE FROM studies AS ST, software AS SW, programmer AS P

WHERE P.PNAME=SW.PNAME AND ST.PNAME=SW.PNAME AND

GENDER= 'F' AND INSTITUTE= 'PRAGATHI' AND DEVELOPIN='C';

--QUERY 87. Display the number of packages, No. of Copies Sold and sales value of each programmer
institute wise.
SELECT INSTITUTE, COUNT(SW.TITLE) AS PKGCNT, COUNT(SW.SOLD) AS SALESCNT,
SUM(SCOST*SOLD)

AS SALVAL

FROM software AS SW, studies AS ST

WHERE SW.PNAME=ST.PNAME

GROUP BY INSTITUTE

--QUERY 88. Display the details of the software developed in DBASE by Male Programmers, who
belong to the institute

-- in which most number of Programmers studied.

CREATE TABLE #INST (INS VARCHAR(20), CNT INT)

INSERT INTO #INST

SELECT INSTITUTE, COUNT(PNAME) FROM studies GROUP BY INSTITUTE

SELECT DISTINCT SW.* FROM software AS SW, programmer AS PG, studies AS ST, #INST

WHERE DEVELOPIN= 'DBASE' AND GENDER= 'M' AND SW.PNAME = PG.PNAME

AND INSTITUTE = INS AND CNT= (SELECT MAX(CNT) FROM #INST)

--QUERY 89. Display the details of the software Developed by the male programmers Born before
1965 and female

-- programmers born after 1975.

SELECT S.*, YEAR(DOB),GENDER FROM Programmer p,Software s

WHERE s.PNAME=p.PNAME AND

((GENDER ='M' AND YEAR(DOB)< 1965) OR (GENDER ='F' AND YEAR(DOB)> 1975))

--QUERY 90. Display the details of the software that has developed in the language which is neither
the

-- first nor the second proficiency of the programmers.


SELECT SW.*,PG.PROF1,PG.PROF2 from Software AS SW, programmer AS PG

WHERE PG.PROF1 != SW.DEVELOPIN AND PG.PROF2 != SW.DEVELOPIN AND PG.PNAME =


SW.PNAME

--QUERY 91. Display the details of the software developed by the male students of Sabhari.

SELECT s.*, INSTITUTE FROM Programmer p,Software s,Studies st

WHERE p.PNAME=s.PNAME and s.PNAME=st.PNAME AND GENDER='M' and INSTITUTE='SABHARI'

--QUERY 92. Display the names of the programmers who have not developed any packages.

SELECT PNAME FROM Programmer

WHERE PNAME NOT IN (SELECT PNAME from Software);

--QUERY 93. What is the total cost of the Software developed by the programmers of Apple?

SELECT SUM(SCOST) FROM Software s,Studies st

WHERE s.PNAME=st.PNAME and INSTITUTE='APPLE'

--QUERY 94. Who are the programmers who joined on the same day?

SELECT A.PNAME, A.DOJ FROM programmer AS A

INNER JOIN

programmer AS B

ON A.DOJ=B.DOJ WHERE A.PNAME <> B.PNAME

ORDER BY A.DOJ

--QUERY 95. Who are the programmers who have the same Prof2?

SELECT DISTINCT A.PNAME, A.PROF2 FROM programmer AS A

INNER JOIN
programmer AS B

ON A.PROF2=B.PROF2 WHERE A.PNAME != B.PNAME

ORDER BY A.PROF2

--QUERY 96. Display the total sales value of the software, institute wise.

SELECT Studies.INSTITUTE,sum(Software.SOLD*Software.SCOST) from Software,

Studies WHERE Studies.PNAME=Software.PNAME group by Studies.INSTITUTE

--QUERY 97. In which institute did the person who developed the costliest package study?

SELECT INSTITUTE, SW.PNAME, DCOST FROM studies AS ST, software AS SW

WHERE ST.PNAME = SW.PNAME AND DCOST= (SELECT MAX(DCOST) FROM software)

--QUERY 98. Which language listed in prof1, prof2 has not been used to develop any package.

SELECT DISTINCT PROF1 FROM programmer WHERE PROF1 NOT IN (SELECT DEVELOPIN FROM
software)

UNION

SELECT DISTINCT PROF2 FROM programmer WHERE PROF2 NOT IN (SELECT DEVELOPIN FROM
software)

--QUERY 99. How much does the person who developed the highest selling package earn and what

-- course did HE/SHE undergo.

SELECT SW.PNAME, COURSE, SALARY FROM studies AS ST,software AS SW, programmer AS PG

WHERE ST.PNAME = SW.PNAME AND ST.PNAME=PG.PNAME

AND SOLD= (SELECT MAX(SOLD) FROM software)

--QUERY 100. What is the AVG salary for those whose software sales is more than 50,000/-.

select avg(Salary) from Programmer p,Software s


where p .PNAME=s.PNAME and SOLD*SCOST >50000

You might also like