diff --git a/DB/DBLab2/report.pdf b/DB/DBLab2/report.pdf new file mode 100644 index 0000000..62613a5 Binary files /dev/null and b/DB/DBLab2/report.pdf differ diff --git a/DB/DBLab2/task1.sql b/DB/DBLab2/task1.sql new file mode 100644 index 0000000..fcb15e5 --- /dev/null +++ b/DB/DBLab2/task1.sql @@ -0,0 +1,3 @@ +SELECT Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД, Н_ВЕДОМОСТИ.ДАТА FROM Н_ВЕДОМОСТИ +INNER JOIN Н_ТИПЫ_ВЕДОМОСТЕЙ ON Н_ВЕДОМОСТИ.ТВ_ИД = Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД +WHERE (Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД > 1) AND (Н_ВЕДОМОСТИ.ЧЛВК_ИД > 163249) AND (Н_ВЕДОМОСТИ.ЧЛВК_ИД = 117219); diff --git a/DB/DBLab2/task2.sql b/DB/DBLab2/task2.sql new file mode 100644 index 0000000..b7e9a92 --- /dev/null +++ b/DB/DBLab2/task2.sql @@ -0,0 +1,4 @@ +SELECT Н_ЛЮДИ.ФАМИЛИЯ, Н_ОБУЧЕНИЯ.ЧЛВК_ИД, Н_УЧЕНИКИ.ИД FROM Н_ЛЮДИ +RIGHT JOIN Н_ОБУЧЕНИЯ ON Н_ЛЮДИ.ИД = Н_ОБУЧЕНИЯ.ЧЛВК_ИД +RIGHT JOIN Н_УЧЕНИКИ ON Н_ОБУЧЕНИЯ.ЧЛВК_ИД = Н_УЧЕНИКИ.ИД +WHERE (Н_ЛЮДИ.ОТЧЕСТВО > 'Георгиевич') AND (Н_ОБУЧЕНИЯ.ЧЛВК_ИД < 113409); diff --git a/DB/DBLab2/task3.sql b/DB/DBLab2/task3.sql new file mode 100644 index 0000000..54b71f3 --- /dev/null +++ b/DB/DBLab2/task3.sql @@ -0,0 +1,2 @@ +SELECT Н_ЛЮДИ.ДАТА_РОЖДЕНИЯ FROM Н_ЛЮДИ +GROUP BY Н_ЛЮДИ.ДАТА_РОЖДЕНИЯ; diff --git a/DB/DBLab2/task4.sql b/DB/DBLab2/task4.sql new file mode 100644 index 0000000..e63b1d4 --- /dev/null +++ b/DB/DBLab2/task4.sql @@ -0,0 +1,10 @@ +SELECT ГРУППА FROM +( + SELECT ГРУППА, COUNT(ГРУППА) FROM Н_УЧЕНИКИ + JOIN Н_ПЛАНЫ ON Н_УЧЕНИКИ.ПЛАН_ИД = Н_ПЛАНЫ.ИД + JOIN Н_ОТДЕЛЫ ON Н_ОТДЕЛЫ.ИД = Н_ПЛАНЫ.ОТД_ИД + WHERE Н_ОТДЕЛЫ.КОРОТКОЕ_ИМЯ = 'КТиУ' + AND EXTRACT(YEAR FROM НАЧАЛО) = 2011 + GROUP BY ГРУППА +) +WHERE count = 5; diff --git a/DB/DBLab2/task5.sql b/DB/DBLab2/task5.sql new file mode 100644 index 0000000..c4b6ada --- /dev/null +++ b/DB/DBLab2/task5.sql @@ -0,0 +1,15 @@ +SELECT ЧЛВК_ИД, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, "Средняя оценка" FROM Н_ЛЮДИ +JOIN ( + SELECT Н_ВЕДОМОСТИ.ЧЛВК_ИД, AVG(CAST (ОЦЕНКА AS INTEGER)) "Средняя оценка" FROM Н_ВЕДОМОСТИ + JOIN Н_УЧЕНИКИ ON Н_ВЕДОМОСТИ.ЧЛВК_ИД = Н_УЧЕНИКИ.ЧЛВК_ИД + WHERE Н_ВЕДОМОСТИ.ОЦЕНКА NOT IN ('зачет', 'незач', 'осв', 'неявка') + AND Н_УЧЕНИКИ.ГРУППА = '4100' + GROUP BY Н_ВЕДОМОСТИ.ЧЛВК_ИД +) ON ЧЛВК_ИД = Н_ЛЮДИ.ИД +WHERE "Средняя оценка" <= ( + SELECT AVG(CAST (ОЦЕНКА AS INTEGER)) FROM Н_ВЕДОМОСТИ + JOIN Н_УЧЕНИКИ ON Н_ВЕДОМОСТИ.ЧЛВК_ИД = Н_УЧЕНИКИ.ЧЛВК_ИД + WHERE Н_УЧЕНИКИ.ГРУППА = '1100' + AND ОЦЕНКА NOT IN ('зачет', 'незач', 'осв', 'неявка') + GROUP BY Н_УЧЕНИКИ.ГРУППА +); diff --git a/DB/DBLab2/task6.sql b/DB/DBLab2/task6.sql new file mode 100644 index 0000000..122f541 --- /dev/null +++ b/DB/DBLab2/task6.sql @@ -0,0 +1,9 @@ +SELECT Н_УЧЕНИКИ.ГРУППА, Н_ЛЮДИ.ФАМИЛИЯ, Н_ЛЮДИ.ИМЯ, Н_ЛЮДИ.ОТЧЕСТВО, Н_УЧЕНИКИ.П_ПРКОК_ИД FROM Н_УЧЕНИКИ +JOIN Н_ЛЮДИ ON Н_УЧЕНИКИ.ЧЛВК_ИД = Н_ЛЮДИ.ИД +WHERE Н_ЛЮДИ.ИД IN ( + SELECT ЧЛВК_ИД FROM Н_УЧЕНИКИ + JOIN Н_ПЛАНЫ ON Н_УЧЕНИКИ.ПЛАН_ИД = Н_ПЛАНЫ.ИД + JOIN Н_ФОРМЫ_ОБУЧЕНИЯ ON Н_ПЛАНЫ.ФО_ИД = Н_ФОРМЫ_ОБУЧЕНИЯ.ИД + WHERE Н_ФОРМЫ_ОБУЧЕНИЯ.НАИМЕНОВАНИЕ IN ('Очная') + AND Н_УЧЕНИКИ.КОНЕЦ = TIMESTAMP '2012-09-01 00:00:00' +); diff --git a/DB/DBLab2/task7.sql b/DB/DBLab2/task7.sql new file mode 100644 index 0000000..9d2fc7d --- /dev/null +++ b/DB/DBLab2/task7.sql @@ -0,0 +1,7 @@ +SELECT ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ДАТА_РОЖДЕНИЯ FROM Н_ЛЮДИ +JOIN ( + SELECT ФАМИЛИЯ ФАМ, ДАТА_РОЖДЕНИЯ ДАТА, COUNT(ДАТА_РОЖДЕНИЯ) FROM Н_ЛЮДИ + GROUP BY ФАМ, ДАТА +) ON ФАМ = ФАМИЛИЯ AND ДАТА = ДАТА_РОЖДЕНИЯ +WHERE count = 1 +ORDER BY ФАМИЛИЯ;