Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Извлечь номера и названия всех блюд, для которых не указаны входящие в него продукты, либо указан всего один продукт




Извлечь номера и названия предметов, по которым получил отличную оценку хотя бы один студент первого курса специальности АСУ

Select distinct Predm.no_pr, Predm.naim_pr

From Stud, Predm, Uspev

Where Stud.no_st = Uspev.no_st

And Predm.no_pr = Uspev.no_pr

And Uspev.ocenka=5

And Stud.spec= АСУ

And Stud.kurs=1

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и названия предметов, сданных на "хорошо" и "отлично" всеми студентами первого курса специальности АСУ

SELECT [predm].[no_pr], [predm].[naim_pr]

FROM (uspev INNER JOIN predm ON [uspev].[no_pr]=[predm].[no_pr]) INNER JOIN stud ON [uspev].[no_st]=[stud].[no_st]

WHERE ([uspev].[ocenka]=4 Or [uspev].[ocenka]=5) And [stud].[kurs]=1 And [stud].[spec]="asu";

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фио студентов, сдавших на "отлично" в точности все те предметы, которые сдал на "отлично" студент Иванов П.С.

SELECT DISTINCT [Stud].[no_st], [Stud].[fio]

FROM Uspev, Stud

WHERE Uspev.no_pr In(Select no_pr From Uspev, Stud Where Uspev.no_st = Stud.no_st And Stud.fio ="иванов п.с." And Uspev.ocenka = 5) And Uspev.no_st = Stud.no_st And Uspev.ocenka = 5 And Stud.fio <> "иванов п.с.";

 

 

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия всех блюд с указанием названия каждого используемого продукта и его количества (для блюд, для которых не указано ни одного продукта, соответствующие значения – Null).

Select Рецепт_Блюдо.ном_бл, Рецепт_Блюдо.назв_бл, Продукт.назв_прод, Рецепт_Блюдо.кол_прод_в_блюде

From (

Select Блюдо.ном_бл As ном_бл,

Блюдо.назв_бл As назв_бл,

Рецепт.кол_прод_в_блюде As кол_прод_в_блюде,

Рецепт.ном_прод As ном_прод

From Блюдо Left Join Рецепт On

Рецепт.ном_бл = Блюдо.ном_бл

) As Рецепт_Блюдо Left Join Продукт On

Продукт.ном_прод = Рецепт_Блюдо.ном_прод

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия всех блюд, для которых не указаны входящие в него продукты, либо указан всего один продукт

Select Блюдо.ном_бл

From Блюдо

Where Блюдо.ном_бл Not In (

Select Блюдо.ном_бл

From Блюдо

Where (Select Count(*) As прод_count

From Рецепт

Where Рецепт.ном_бл = Блюдо.ном_бл)>1)

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь сведения о блюдах с калорийностью ниже 500: номер, название, количество продуктов, входящих в блюдо (калорийность блюда рассчитывать как произведение калорийности продукта на количество продукта в блюде, просуммированное по всем продуктам, входящим в блюдо)

Select Рецепт_нов.ном_бл, Блюдо.назв_бл, сум_кол_прод_в_блюде, сум_калорийность

From (

Select Рецепт.ном_бл As ном_бл, sum (Рецепт.кол_прод_в_блюде * Продукт.калорийность) As Сум_калорийность,

Count{sum} (Рецепт.кол_прод_в_блюде) As сум_кол_прод_в_блюде

From Рецепт, Продукт

Where Продукт.ном_прод = Рецепт.ном_прод

Group By Рецепт.ном_бл) As Рецепт_нов,

Блюдо

Where Рецепт_нов.сум_калорийность <500

And Блюдо.ном_бл = Рецепт_нов.ном_бл

{sum, если считать поле кол_прод_в_блюде;

count, если считать поле ном_пр, т.е. сколько разных продуктов в блюде}

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия блюд, содержащих в количестве более 100 ед. хотя бы один продукт из тех, которые содержит блюдо "Жюльен с грибами а ля рюс"

SELECT ном_бл, назв_бл

FROM блюдо xb

WHERE ном_бл IN (

SELECT ном_бл

FROM рецепт XР

WHERE кол_прод_в_блюде > 100

AND ном_пр IN (

SELECT ном_пр

FROM рецепт YР

WHERE ном_бл IN (

SELECT ном_бл

FROM блюдо Yb

WHERE назв_бл= "жюльен")))

 

 

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия блюд, содержащих в количестве более 100 ед., по крайней мере, все те продукты, которые содержит блюдо "Солянка балтийская"

SELECT ном_бл, назв_бл

FROM Блюдо

WHERE ном_бл IN (

SELECT ном_бл

FROM Рецепт

WHERE кол_прод_в_блюде > 100 AND

NOT EXISTS (

SELECT *

FROM Рецепт

WHERE ном_бл IN (

SELECT ном_бл

FROM Блюдо

WHERE назв_бл = 'Солянка') AND

ном_пр NOT IN (

SELECT ном_пр

FROM Рецепт

WHERE Блюдо.ном_бл = Рецепт.ном_бл)))

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь статистику уровней калорийности продуктов: калорийность, количество продуктов, имеющих эту калорийность, количество блюд, содержащих продукты этой калорийности

SELECT Kal.калорийность, Pr.kol_pr, Bl.kol_bl

FROM [Select distinct П_2.калорийность

from Продукт П_2]. AS Kal,

[SELECT DISTINCT К.калорийность,

count(t.ном_прод) as kol_pr

FROM [Select distinct П_2.калорийность

from Продукт П_2 ]. AS К,

(SELECT Distinct П_4.калорийность, П_4.ном_прод

from Продукт П_4, (Select distinct П_5.калорийность

from Продукт П_5) П_6

where П_4.калорийность=П_6.калорийность)

AS t

WHERE К.калорийность=t.калорийность

GROUP BY К.калорийность]. AS Pr,

[SELECT Distinct П_3.калорийность, count(Р_3.ном_бл) as kol_bl

from Продукт П_3, Рецепт Р_3

where П_3.ном_прод=Р_3.ном_пр

group by П_3.калорийность]. AS Bl

WHERE Kal.калорийность=Pr.калорийность

and Kal.калорийность=Bl.калорийность;

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Использование блюд и продуктов: название блюда, название продукта, необходимое количество (для блюд с отсутствующими сведениями о продуктах, и продуктов с отсутствующими сведениями об их использовании в блюдах, – соответствующие значения должны быть Null)

SELECT distinct Блюдо.назв_бл as nm_bl,

Продукт.назв_прод as nm_pr,Рецепт.Кол_прод_в_блюде as kol

from Блюдо,Продукт,Рецепт

Where Блюдо.ном_бл=Рецепт.ном_бл

and Продукт.ном_прод=Рецепт.ном_пр

union

SELECT distinct Блюдо.назв_бл as nm_bl,' ' as nm_pr,' ' as kol

from Блюдо, Рецепт

Where (Блюдо.ном_бл not in (Select Рецепт.ном_бл

From Рецепт))

UNION

SELECT distinct ' ' as nm_bl,Продукт.назв_прод as nm_pr,' ' as kol

from Продукт, Рецепт

Where (Продукт.ном_прод not in (Select Рецепт.ном_пр

From Рецепт));

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия блюд, не содержащих в количестве более 100 ед. ни одного продукта, кроме тех, которые содержит блюдо "Солянка донская"

SELECT блюдо.ном_бл, [назв_бл]

FROM Блюдо

WHERE NOT EXISTS (

SELECT ном_пр

FROM Рецепт1

WHERE кол_прод_в_блюде > 100 AND

рецепт1.ном_бл = блюдо.ном_бл AND

ном_пр NOT IN (

SELECT ном_пр

FROM Рецепт1, блюдо

WHERE рецепт1.ном_бл = блюдо.ном_бл AND

назв_бл = 'Солянка'));

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь сведения о студентах со средним баллом выше 4,7: номер, ф.и.о., значения минимального, максимального и среднего баллов (не учитывать "хвосты")

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]

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь сведения о блюдах с калорийностью выше калорийности блюда номер 123: номер, название, калорийность (калорийность блюда рассчитывать как произведение калорийности продукта на количество продукта в блюде, просуммированное по всем продуктам, входящим в блюдо)

select блюдо.назв_бл, sum(продукт.калорийность*рецепт.кол_прод_в_блюде) as Калорийность

from (блюдо inner join рецепт on блюдо.ном_бл=рецепт.ном_бл) inner join продукт on рецепт.ном_прод=продукт.ном_прод

group by блюдо.ном_бл, блюдо.назв_бл

having sum(продукт.калорийность*рецепт.кол_прод_в_блюде)>

any (select sum(продукт.калорийность*рецепт.кол_прод_в_блюде)

from рецепт inner join продукт on рецепт.ном_прод=продукт.ном_прод

where рецепт.ном_бл=123

group by ном_бл)

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь статистику успеваемости по специальностям и курсам: специальность, курс, минимальный, максимальный, средний баллы (не учитывать "хвосты")

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];

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 1064 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

2265 - | 2223 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.014 с.