Билет №7
1.
Покупатель (код_покупателя, ФИО_покупателя)
Товар (код_товара, назв_товара)
Покупка (код_покупателя, код_товара,дата_покупки, время_покупки, кол_единиц_товара)
2.(я исправила)
SelectРецепт_Блюдо.ном_бл, Рецепт_Блюдо.назв_бл, Продукт.назв_прод, Рецепт_Блюдо.кол_прод_в_блюде
From (
Select Блюдо.ном_бл As ном_бл,
Блюдо.назв_бл Asназв_бл,
Рецепт.кол_прод_в_блюдеAsкол_прод_в_блюде,
Рецепт.ном_прод Asном_прод
From Блюдо Left Join Рецепт On
Рецепт.ном_бл = Блюдо.ном_бл
) As Рецепт_Блюдо Left Join Продукт On
Продукт.ном_прод = Рецепт_Блюдо.ном_прод
Билет №8
1.
Товар (код_товара, назв_товара, срок_гарантии, цена, код_категории_товара)
Категория (код_категории_товара, назв_категории)
2.
SelectБлюдо.ном_бл
FromБлюдо
Where Блюдо.ном_бл Not In (
Select Блюдо.ном_бл
From Блюдо
Where ( Select Count(*) As прод_count
From Рецепт
Where Рецепт.ном_бл = Блюдо.ном_бл)>1)
Билет №9
1.
Покупатель (код_покупателя, ФИО_покупателя, стаж_покупателя, код_категории_покупателя+код_товара, дата_покупки)
Категория (код_категории_покупателя, назв_категории) или Покупка(код_покуп-ля,код_товара,дата_п)
2.
SelectРецепт_нов.ном_бл, Блюдо.назв_бл, сум_кол_прод_в_блюде, сум_калорийность
From(
SelectРецепт.ном_блAsном_бл,sum(Рецепт.кол_прод_в_блюде * Продукт.калорийность)AsСум_калорийность,
Count{sum}(Рецепт.кол_прод_в_блюде)Asсум_кол_прод_в_блюде
From Рецепт, Продукт
WhereПродукт.ном_прод = Рецепт.ном_прод
GroupByРецепт.ном_бл)AsРецепт_нов,
Блюдо
WhereРецепт_нов.сум_калорийность <500
AndБлюдо.ном_бл = Рецепт_нов.ном_бл
{sum, если считать поле кол_прод_в_блюде;
count, если считать поле ном_пр, т.е. сколько разных продуктов в блюде)
Билет №10 Задача 2
SELECT ном_бл, назв_бл
FROM блюдо xb
WHERE ном_бл IN (
SELECT ном_бл
FROM рецепт XР
WHERE кол_прод_в_блюде > 100
AND ном_пр IN (
SELECT ном_пр
FROM рецепт YР
WHERE ном_бл IN (
SELECT ном_бл
FROM блюдо Yb
WHERE назв_бл= "жюльен")));
Билет №11
Задача 2
SELECT ном_бл, назв_бл
FROM Блюдо
WHERE ном_бл IN (
SELECT ном_бл
FROM Рецепт
WHERE кол_прод_в_блюде > 100 AND
NOT EXISTS (
SELECT *
FROM Рецепт
WHERE ном_бл IN (
SELECT ном_бл
FROM Блюдо
WHERE назв_бл = 'Солянка') AND
ном_пр NOT IN (
SELECT ном_пр
FROM Рецепт
WHERE Блюдо.ном_бл = Рецепт.ном_бл)));
Билет №12
Задача 2(-)
SELECT product.kal, COUNT(distinct product.nom_prod) AS k_prod, COUNT (bludo.nom_bl)
AS k_bl
FROM product, bludo, recept
WHERE product.nom_prod=recept.nom_prod And bludo.nom_bl=recept.nom_bl
GROUP BY product.kal;
Иринина(-)
SELECT калорийность, count(ном_пр) AS к_прод, (select count(рецепт.ном_бл) from рецепт, продукт where рецепт.ном_пр=продукт.ном_пр AND продукт.калорийность=Р.калорийность) AS к_блюд
FROM продукт AS р
GROUP BY калорийность;
Билет №13
Задача 2
SELECT bludo.nazv_bl AS n1, product.nazv_prod AS n2, recept.kol_prod_v_bludo AS kol
FROM bludo, product, recept
WHERE bludo.nom_bl=recept.nom_bl
AND product.nom_prod=recept.nom_prod
UNION
SELECT bludo.nazv_bl AS n1, " " AS n2, " " AS kol
FROM bludo
WHERE nom_bl NOT IN (SELECT DISTINCT nom_bl FROM recept)
UNION SELECT " " AS n1, nazv_prod AS n2, " " AS kol
FROM product
WHERE nom_prod NOT IN (SELECT DISTINCT nom_prod FROM recept);
Билет №14
Задача 2
SELECT блюдо.ном_бл, [назв_бл]
FROM Блюдо
WHERE NOT EXISTS (
SELECT ном_пр
FROM Рецепт1
WHERE кол_прод_в_блюде > 100 AND
рецепт1.ном_бл = блюдо.ном_бл AND
ном_пр NOT IN (
SELECT ном_пр
FROM Рецепт1, блюдо
WHERE рецепт1.ном_бл = блюдо.ном_бл AND
назв_бл = 'Солянка'));
Билет №15
Задача 2
SELECT [stud].[no_st], [stud].[fio], MIN([uspev].[ocenka]) AS minoc, MAX([uspev].[ocenka]) AS maxoc, AVG([uspev].[ocenka]) AS Sredn
FROM stud, uspev
WHERE stud.no_st = uspev.no_st AND stud.no_st IN ( SELECT uspev.no_st FROM uspev GROUP BY uspev.no_st HAVING AVG(uspev.ocenka) >"4.7")
GROUP BY [stud].[no_st], [stud].[fio];
Билет №16
Задача 2
select блюдо.назв_бл, sum(продукт.калорийность*рецепт.кол_прод_в_блюде) as Калорийность
from (блюдо inner join рецепт on блюдо.ном_бл=рецепт.ном_бл) inner join продукт on рецепт.ном_прод=продукт.ном_прод
group by блюдо.ном_бл, блюдо.назв_бл
having sum(продукт.калорийность*рецепт.кол_прод_в_блюде)>
any (select sum(продукт.калорийность*рецепт.кол_прод_в_блюде)
from рецепт inner join продукт on рецепт.ном_прод=продукт.ном_прод
where рецепт.ном_бл=123
groupbyном_бл)
Билет №17
Задача 2
SELECT [spec], [kurs], MIN([uspev].[ocenka]) AS minocen, MAX([uspev].[ocenka]) AS maxocen, AVG([uspev].[ocenka]) AS Sredn
FROM stud, uspev
WHERE [stud].[no_st]=[uspev].[no_st]
GROUP BY [spec], [kurs];
Билет №18
Задача 2
SELECT продукт.ном_пр, [назв_пр], Блюдо.ном_бл, [назв_бл]
FROM продукт, блюдо
WHERE ном_пр NOT IN ( SELECT ном_пр FROM рецепт1 WHERE рецепт1.ном_бл = блюдо.ном_бл);
Билет №19
Задача 2
SELECT nom_bl AS nom, nazv_bl as nazv, "bludo" as type
FROM bludo WHERE kat="diet"
UNION (
SELECT nom_prod AS nom, nazv_prod as nazv, "product" as type
FROM product WHERE kal<500 )
ORDER BY nazv;
Билет №20
Задача 2
SELECT [no_st], [fio]
FROM stud
WHERE stud.no_st IN (SELECT no_st FROM uspev WHERE (no_pr IN (SELECT uspev.no_pr FROM uspev, stud WHERE uspev.ocenka<5 AND stud.fio="Иванов П.С." AND stud.no_st=uspev.no_st)) GROUP BY no_st HAVING max(ocenka)<5);
Билет №21
Задача 2
Вариант 0 (Иринин) супер (+)
SELECT [блюдо].[категория], min(калорийность) AS мин, max(калорийность) AS макс, avg(калорийность) AS сред
FROM блюдо, (SELECT блюдо.ном_бл AS ном_бл, калорийность
FROM (блюдо inner join рецепт on [блюдо].[ном_бл]=[рецепт].[ном_бл]) inner join продукт on [продукт].[ном_прод]=[рецепт].[ном_прод]
GROUP BY блюдо.ном_бл,калорийность)
WHERE [блюдо].[ном_бл]=ном_бл
GROUP BY [блюдо].[категория];
Вариант1 (с каля-баля)
SELECT [bludo].[kat], min(kal) AS minimum, max(kal) AS maximum, avg(kal) AS average
FROM bludo, [SELECT bludo.nom_bl AS nom_bl, SUM(recept.kol_prod_v_bludo*product.kal) AS kal
FROM bludo, product, recept
WHERE [bludo].[nom_bl]=[recept].[nom_bl] And [product].[nom_prod]=[recept].[nom_prod]
GROUP BY bludo.nom_bl]. AS [%$##@_Alias]
WHERE [bludo].[nom_bl]=nom_bl
GROUP BY [bludo].[kat];
Вариант2 (без каля-баля)
SELECT [bludo].[kat], min(kal) AS minimum, max(kal) AS maximum, avg(kal) AS average
FROM bludo,([SELECT bludo.nom_bl AS nom_bl, SUM(recept.kol_prod_v_bludo*product.kal) AS kal
FROM bludo, product, recept
WHERE [bludo].[nom_bl]=[recept].[nom_bl] And [product].[nom_prod]=[recept].[nom_prod]
GROUP BY bludo.nom_bl)
WHERE [bludo].[nom_bl]=nom_bl
GROUP BY [bludo].[kat];
Билет №22
Задача 2
SELECT stud.no_st, stud.fio, minimum, maximum, average
FROM stud, [SELECT stud.no_st AS no_st, min(uspev.ocenka) AS minimum, max(uspev.ocenka) AS maximum, avg(uspev.ocenka) AS average
FROM stud, uspev
WHERE stud.no_st=uspev.no_st
GROUP BY stud.no_st]. AS [%$##@_Alias]
WHERE average>
(SELECT avg([ocenka])
FROM uspev
WHERE no_st=992027
GROUP BY [no_st];)
AND stud.no_st=no_st;
Билет №23
Задача 2
SELECT [stud].[spec], [uspev].[ocenka], count([uspev].[no_st]) AS kolvo_st, count([uspev].[no_pr]) AS kolvo_pr
FROM stud, uspev
WHERE [stud].[no_st]=[uspev].[no_st]
GROUP BY stud.spec, uspev.ocenka;
Билет №24
Задача 2
SELECT no_pr AS no, fio, "Преподаватель" AS kateg
FROM prepod
UNION SELECT no_st AS no, fio, "Студент" AS kateg
FROM stud
WHERE no_st IN(SELECT no_st FROM rukov)
ORDER BY fio;
Билет №25
Задача 2
SELECT stud.no_st, stud.fio, predm.naim_pr AS naim_pr, uspev.ocenka AS ocenka
FROM stud, predm, uspev
WHERE stud.no_st=uspev.no_st
AND predm.no_pr=uspev.no_pr
UNION SELECT stud.no_st, stud.fio, " " AS naim_pr, " " AS ocenka
FROM stud
WHERE stud.no_st NOT IN (SELECT DISTINCT no_st FROM uspev);
Билет №26
Задача 2
SELECT stud.no_st, stud.fio, predm.no_pr AS nop, predm.naim_pr AS name
FROM stud, predm
WHERE
predm.kurs=stud.kurs
AND NOT EXISTS(
SELECT no_st, no_pr
FROM uspev
WHERE uspev.no_pr=predm.no_pr
AND uspev.no_st=stud.no_st)
UNION SELECT stud.no_st, stud.fio, NULL AS nop, NULL AS name
FROM stud, predm
WHERE stud.no_st NOT IN(
SELECT stud.no_st
FROM stud, predm
WHERE predm.kurs=stud.kurs
AND NOT EXISTS(
SELECT no_st, no_pr
FROM uspev
WHERE uspev.no_pr=predm.no_pr
AND uspev.no_st=stud.no_st));
Билет №27
Задача 2
SELECT [stud].[no_st], [stud].[fio]
FROM stud, uspev
WHERE stud.no_st=uspev.no_st AND uspev.no_pr IN (SELECT DISTINCT [uspev].[no_pr] AS no_pr FROM uspev, stud WHERE [stud].[fio]="AAA" And [stud].[no_st]=[uspev].[no_st] And [uspev].[ocenka]=5)
GROUP BY [stud].[no_st], [stud].[fio]
HAVING min(uspev.ocenka)=5 AND max(uspev.ocenka)=5;
Билет №28
Задача 2