Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

бд

.docx
Скачиваний:
15
Добавлен:
02.04.2015
Размер:
34.94 Кб
Скачать

16,26,36

Карточка 5,41,7

1. Работы, подготовленные студентами 4-го факультета.

Select R1.Назв. раб.

From R1,R2,R3

Where R4.№ гр.=R1.№ гр. and R1.ФИО=R2.ФИО and R4.Факультет=4

2. Факультеты, студенты которых подготовили только УИРС.

SELECT DISTINCT a_4.Fackultet

FROM R1, R2, R4

WHERE R4.GROUP_NUM=R1.GROUP_NUM And R1.FIO=R2.FIO And R2.Work_Type='УИРС' and (R4.Fackultet not in(Select R4.fackultet from R2,R4,R1

Where R4.GROUP_NUM=R1.GROUP_NUM And R1.FIO=R2.FIO And R2.Work_Type<>' УИРС’));

3. Студентов, которые представили более одной статьи.

Select R2.FIO

From R2

Where R2.Wid_Rab=’Статья’

Group by FIO

Having count(*)>1

4. Студентов, которые подготовили все виды работ.

Select R1.FIO

From R1,R2

Where R1.ФИО=R2.ФИО

Group by R1.FIO

Having count(distinct R2.Woprk_Type)=(select count(*) From R3)

17,27,37

Карточка 6,15

1. Кафедры, студенты которых подготовили все виды работ.

SELECT R4.KAFEDRA

FROM R4, R1

WHERE R1.FIO=R4.FIO

GROUP BY R4.KAFEDRA

HAVING COUNT( R4.WORK_TYPE) = (SELECT COUNT(*) FROM R5);

2. Факультеты, на которых не было подготовлено ни одной студенческой работы.

Select distinct Facultet

From R3,R4

Where R3.Kafedra not in(Select Kafedra from R4)

3. Группы, студенты которых подготовили только статьи.

SELECT DISTINCT R1.Group_Num

FROM R1, R4

WHERE R1.FIO=R4.FIO and (R1.Group_Num not in (SELECT DISTINCT b_1.GROUP_NUM From R1,R4

WHERE R4.WORK_TYPE<>'статья' And R1.FIO=R4.FIO));

4. Студентов 1-го курса, подготовивших работы на своей выпускающей кафедре.

Select R1.FIO

From R1,R2,R4

Where R1.FIO=R4.FIO and R2.Kafedra= R4.Kafedra and Курс=1 R1.GROUP_NUM=R2.GROUP_NUM

22,33,42,44

Карточка 12,14

1. Студентов, представивших работы более чем от одной кафедры.

SELECT DISTINCT a.FIO

From R4 as a, R4 as b

Where a.FIO=b.FIO and a.Kafedra<>b.kafedra

2. Кафедры, на которых подготовили работы студенты 3-го курса.

Select distinct R4.Kafedra

From R1,R4

Where R1.FIO=R4.FIO and Курс=3

3. Кафедры, на которых подготовили работы студенты других факультетов.

SELECT DISTINCT a.Kafedra

FROM R3 AS a, R3 AS b, R1, R2, R4

WHERE R1.FIO=R4.FIO and R1.GROUP_NUM=R2.GROUP_NUM and (b.Fackultet in (Select R3.Fackultet From R3,R4 Where R3.KAFEDRA=R4.KAFEDRA)) and (a.Fackultet in(Select R3.Fackultet FROM R4, R3, R2, R1 Where R3.KAFEDRA=R2.KAFEDRA and R1.FIO=R4.FIO and R1.GROUP_NUM=R2.GROUP_NUM)) and a.Fackultet<>b.Fackultet and a.Kafedra=R2.KAFEDRA and b.Kafedra=R4.KAFEDRA;

4. Работы, подготовленные студентами различных факультетов.

Select distinct R4.Work_Name

From R1,R2,R3,R4

Where R3. Kafedra =R2. Kafedra and R1.FIO=R4.FIO and R1.№ гр =R2. .№ гр and

R3. Kafedra =R4. Kafedra

Group by R4.Work_Name,

Having count(*)>1

14

Карточка 2.

1 Преподавателей, которые могут вести все дисциплины на 3-м курсе.

SELECT R2.FIO

FROM R2, R1

WHERE R1.Disc=R2.Disc And R1.Curs=3

GROUP BY R2.FIO

HAVING count(*)=(Select count(*) From R1 Where Curs=3);

2. Преподавателей, которые могут вести дисциплины только на одном курсе.

SELECT R2.FIO

FROM R2, R1

WHERE R1.Disc=R2.Disc

Group by FIO

Having (avg(R1.Curs))=(min(R1.Curs))

3. Предодавателей, которые ведут все типы занятий (лекции, лабораторные работы, практические занатия, курсовое проектирование).

SELECT Fio

FROM (Select distinct FIO,Tip_Zan From R2)

GROUP BY FIO

HAVING count(*)=(SELECT count(*) FROM (Select Distinct Tip_Zan From R2));

4. Кафедры, преподаватели которых работают только на старших курсах (начиная с 3-го).

SELECT [Kaf]

FROM R3

WHERE (FIO in (Select R3.FIO From R1,R2,R3 Where R3.FIO=R2.FIO and R2.Disc=R1.Disc and R1.Curs>3)) and (FIO not in (Select R3.FIO From R1,R2,R3 Where R3.FIO=R2.FIO and R2.Disc=R1.Disc and R1.Curs<=3));

21,32,34

Карточка 11,13,22

1. SELECT distinct FIO

From R2

Where Tip_Zan='Лекция' and (FIO not in (Select distinct FIO From R2 Where Tip_Zan<>'Лекция'))

2. SELECT distinct R3.Kaf

From R2,R3

Where R2.FIO=R3.FIO and R2.Tip_Zan<>'Курсовое проектирование'

3. SELECT R1.Curs

From R1,R2,R3

Where R1.Disc=R2.Disc and R2.FIO=R3.FIO and R3.Kaf=44

4. SELECT DISTINCT R3.Kaf

FROM R3, R2, R1

WHERE R3.FIO=R2.FIO and R2.Disc=R1.Disc and R1.Curs<=2 and (R3.Kaf not in (SELECT Distinct R3.Kaf From R3,R2,R1 Where R3.FIO=R2.FIO and R2.Disc=R1.Disc and R1.Curs>2));

11

Карточка 27

1. Людей, перехавших из одного района в другой.

SELECT DISTINCT R1.[FIO]

FROM R1, R2 AS a, R2 AS b

WHERE (a.Raion in (Select R2.Raion From R1,R2 Where R1.Old_Adr=R2.Adr)) and (b.Raion in(Select R2.Raion From R1,R2 Where R1.New_Adr=R2.Adr)) and a.Raion<>b.Raion and R1.Old_Adr=a.Adr and R1.New_Adr=b.Adr;

2. Людей, которые перехали в тот район, где они работают.

SELECT R1.FIO

From R1,R2 as a,R2 as b,R3

Where R1.FIO=R3.FIO and a.Adr=R1.New_Adr and b.Adr=R3.Adr and (a.Raion in (Select R2.Raion From R1,R2 Where R1.New_Adr=R2.Adr)) and (b.Raion in (Select R2.Raion From R2,R3 Where R2.Adr=R3.Adr)) and a.Raion=b.Raion

3. Людей, которые при перезде сохранили район проживания.

SELECT DISTINCT R1.[FIO]

FROM R1, R2 AS a, R2 AS b

WHERE (a.Raion in (Select R2.Raion From R1,R2 Where R1.Old_Adr=R2.Adr)) and (b.Raion in(Select R2.Raion From R1,R2 Where R1.New_Adr=R2.Adr)) and a.Raion=b.Raion and R1.Old_Adr=a.Adr and R1.New_Adr=b.Adr;

4. Людей, перезжавших несколько раз

Select R1.FIO

From R1

Group by FIO

Having count(*)>1

10

Карточка 26

1. Изделия, которые производятся только на экспорт.

SELECT distinct R1.Name

FROM R1, R3, R2 AS a, R2 AS b

WHERE R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str<>b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak)) and (Name not in(SELECT R1.Name From R1,R3,R2 as a,r2 as b Where R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str=b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak))))

2. Производителей, которые не выпускают товаров на экспорт.

SELECT distinct R1.Proizv

FROM R1, R3, R2 AS a, R2 AS b

WHERE R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str=b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak)) and (Proizv not in(SELECT R1.Proizv From R1,R3,R2 as a,r2 as b Where R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str<>b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak))))

3. Изделия, которые используются как внутри страны, так и идут на экспорт.

SELECT distinct R1.Name

FROM R1, R3, R2 AS a, R2 AS b

WHERE R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str<>b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak)) and (Name in(SELECT R1.Name From R1,R3,R2 as a,r2 as b Where R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str=b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak))))

4. Материалы, которые используются в изделиях, идущих на экспорт.

SELECT R1.Mat

FROM R1, R3, R2 AS a, R2 AS b

WHERE R1.Shifr=R3.Shifr and Post=Proizv and a.Firm=Post and b.Firm=Zak and a.Str<>b.Str and (a.Str in(Select Str From R2,R3 Where Firm=Post)) and (b.Str in(Select Str From R2,R3 Where Firm=Zak))

5. Поставщиков, которые работают только с одним заказчиком.

SELECT Post

FROM R3

GROUP BY Post

HAVING count(*)=1

9

Карточка 25

1. Организации - устроители, которые организовали несколько выставок.

SELECT DISTINCT R1.Org_Ustr

FROM R1, R1 AS a

WHERE R1.Vist<>a.Vist And R1.Org_Ustr=a.Org_Ustr;

2. Организации, которые устраивали выставки только в одном городе.

Select Org_Ustr

From (Select distinct Org_Ustr,Gor

From R1,R2

Where R1.Vist=R2.Vist)

Group by Org_Ustr

Having count(*)=1

3. Города, в которых одна организация устраивала несколько выставок.

Select Gor

From (SELECT DISTINCT Org_Ustr, Gor, R1.Vist

FROM R1, R2

WHERE R1.Vist=R2.Vist

Group by Org_Ustr,Gor,R1.Vist)

Group by Gor,Org_ustr

Having count (Vist)>1

4. Выставки, в которых принимала участие, помимо устроителя, только одна организация.

SELECT Vist

FROM Rr1

Group by Vist

Having count(*)=1

5. Выставки, в которых принимало участие несколько организщаций, но только из одного и того же города.

SELECT R1.Vist

FROM R1, R3 AS a, R3 AS b

WHERE a.Org=R1.Org_Ustr And b.Gor=R1.Org_Uch And a.Gor=b.Gor

GROUP BY Vist, Org_Uch

HAVING count(*)>1

Карточка 4 (стр. 4)

1. Склады , с которыми работают сотрудники только своей специализации.

Select Sotr

From (SELECT distinct Sotr,Spez

FROM R1, R3

WHERE R1.Mag=R3.Mag)

Group by Sotr

Having count(Spez)>1

2. Магазины, сотрудники которых заказывают продукцию на складах, расположенных во всех районах из отношения R2.

Select Mag

From (SELECT Mag,Raion

From R1,R2

Where R1.Sklad=R2.Sklad

Group by Mag,Raion)

Group by Mag

Having count(Raion)=(Select count(*)

From (Select distinct Raion From R2))

3. Склады, которые обслуживают магазины только одной специализации.

Select Sklad

From (SELECT distinct Spez,R1.Sklad

From R1,R3

Where R1.Mag=R3.Mag)

Group by Sklad

Having count(*)=1

4. Склады, которые являются основными для всех типов магазинов.

Select Sklad

From R3

Group by Sklad

Having count(*)=(Select count(*) From (SELECT DISTINCT Tip FROM R3))

8,51(?)

Карточка 44

1. Фондовые магазины, продающие все акции, указанные в R2.

SELECT Mag

From T1

Group by Mag

Having count(*)=(Select count(*) From T2)

2. Фондовые магазины, которые не продают какие-либо акции по номиналу.

Select distinct Mag

From T1,T2

Where T1.Akc=T2.Akc and Cena<>Nomenal

3. Акции, которые продаются только одним фондовым магазином.

Select Akc

From T1

Group by Akc

Having count(*)=1

4. Акции, которые продаются по ценам ниже номинала.

SELECT DISTINCT T1.Akc

FROM T1, T2

WHERE T1.Akc=T2.Akc And Cena<Nomenal

5. Фондовые магазины, которые продают только один вид акций.

SELECT DISTINCT Mag

FROM T1

Group by Mag

Having count(*)=1

7(?), 50(?)

Карточка 33

1. Организации, которые перечисляют деньги только в благотворительные фонды, расположенные в том же городе, что и сама организация.

SELECT E1.Org

From E1,E2,E3

Where E1.Org=E2.Org and E3.Fond=E1.Fond and E2.Gor=E3.Gor and (E1.Org not in (SELECT E1.Org

From E1,E2,E3

Where E1.Org=E2.Org and E3.Fond=E1.Fond and E2.Gor<>E3.Gor))

2. Фонды, в которые делают отчисления несколько организаций, находящихся в других городах.

SELECT E1.Fond

From E1,E3,E2

Where E3.Fond=E1.Fond and E1.Org=E2.Org and E3.Gor<>E2.Gor and (E1.Fond not in (SELECT distinct E1.Fond

From E1,E3,E2

Where E3.Fond=E1.Fond and E1.Org=E2.Org and E3.Gor=E2.Gor))

Group by E1.Fond

Having count(*)>1

3. Фонды, в которые делают отчисления из всех городов, представленных в отношении R2.

Select Fond

From (SELECT E1.Fond,Gor

From E1,E2

Where E1.Org=E2.Org

Group by E1.Fond,Gor)

Group by Fond

Having count(Gor)=(Select count(*) From (Select distinct Gor From E2))

4. Фонды, в которые делают отчисления все организации, представленные в отношении R2.

Select Fond

From E1,E2

Where E1.Org=E2.Org

Group by Fond

Having count(E1.Org)=(Select count(*) From E2)

5

Карточка ?6,30(2) (стр 6 -5)

1. Пользователей, которые работают с несколькими приложениями, но в одной операционной системе.

SELECT distinct a.FIO

From R1 as a,R1 as b

Where a.Os=b.Os and a.Pril<>b.Pril and a.Fio=b.Fio

2. Серверы БД, которые работают только с одной БД.

SELECT Serv

From R3

Group by Serv

Having count(*)=1

3. Приложения, которые работают со всеми серверами БД.

SELECT distinct Pril

From (SELECT distinct Pril,Serv

From R3,R2

Where R2.BD=R3.BD)

Group by Pril

Having count(*)=(Select count(*) From (Select distinct Serv From R3))

4. Пользователи, которые работают только с одним сервером БД.

SELECT distinct FIO

FROM R2, R1,R3

WHERE R2.BD=R3.BD And R1.Pril=R2.Pril

Group by FIO,OS

Having count(*)=1

№13

Карточка 1

1. ВУЗы, студенты которых принимали участие только в одной (какой-либо) конференции.

Select Vuz

From (SELECT distinct Vuz,Konf

FROM r_1, r_4

WHERE R_1.Fio=r_4.Fio)

Group by Vuz

Having count(*)=1

2. ВУЗы, в которых проводилось более одной конференции.

Select Vuz

From R_2

Group by Vuz

Having count(*)>1

3. ВУЗы, студенты которых заняли призовые места на всех конференциях.

Select Vuz

From (Select distinct Vuz

From R_4,R_1

Where R_4.FIO=R_1.Fio and Otc>3

Group by Vuz,R_1.Fio

Having count(*)=(Select count(*) From (Select distinct Konf from r_1)))

Where Vuz not in (Select distinct Vuz

From R_4,R_1

Where R_4.FIO=R_1.Fio and Otc<=3)

4. ВУЗы, студенты которых участвовали в конференциях, но не заналя ни одного призового места

Select distinct Vuz

From R_4,R_1

Where R_4.FIO=R_1.Fio and Otc<=3

41

Карточка 23(1)

1. Кафедры, на которых работают по НИРС студенты только своей специальности.

Select Kaf

From (SELECT distinct T1.Kaf,Spez

From T1,T3

Where t1.Gr=T3.Gr)

Group by Kaf

Having count(*)=1

2. Группы, студенты которых работают по НИРС на всех факультетах (т.е. группы, в которых есть хотя бы один студент, работающий на всех факультетах).

Select Gr

From (SELECT distinct Gr,Fak

From T1,T2

Where t1.Kaf=T2.Kaf)

Group by Gr

Having count(*)=(Select count(*) From (Select distinct Fak From T2))

3. Группы, студенты которых работают только на своей выпускающей кафедре.

Select Gr

From (Select distinct T1.Gr,T1.Kaf,T3.Kaf

From T1,T3

Where T1.Gr=T3.Gr

Group by T1.Gr,T1.Kaf,T3.Kaf

Having count(*)=1)

Where T1.Kaf=T3.Kaf

4. Кафедры, на которых работают по НИРС студенты всех курсов.

Select Kaf

From (Select distinct T1.Kaf,Curs

From T1,T3

Where T1.Gr=T3.Gr)

Group by Kaf

Having count(*)=(Select count(*) From (Select distinct Curs From T3))

Карточка 23(2)

1. Магазины, в которых продаются модели, поставляемые только фирмами-поставщиками только одной страны.

Select Mag

From (SELECT distinct Mag,Str

From E1,E3

Where E1.Firm=E3.Firm)

Group by Mag

Having count(*)=1

2. Магазины, в которых продаются одинаковые модели, поставляемые различными фирмами.

Select distinct a.Mag

From E1 as a,E1 as b

Where a.Mod=b.mod and a.Firm<>b.Firm and a.mag=b.mag

3. Магазины, в которых продаются модели, поставляемые всеми фирмами-изготовителями.

Select Mag

From E1

Where E1.Mod in

(Select distinct E2.Mod From E2 Group by E2.Mod

Having count(*)=(Select count(*) From (Select distinct Firm From E2)))

4. Магазины, в которых продаются все модели из имеющихся в отношении R2.

Select Mag

From (Select distinct Mag,E1.Mod

From E1)

Group by Mag

Having count(*)=(Select count(*) From (Select distinct E2.Mod From E2))

45(?)

Карточка 25

1. Студентов, гранты которых учреждены несколькими странами.

Select distinct a.Fio

From (SELECT distinct Uchr,Fio,R1.Grant From R1,R2 Where R1.Grant=R2.Grant) as a ,

(SELECT distinct Uchr,Fio,R1.Grant From R1,R2 Where R1.Grant=R2.Grant) as b

Where a.Fio=B.Fio and a.Grant=b.Grant and a.Uchr<>b.Uchr

2. Гранты, на которые претендуют студенты группы 4110.

SELECT distinct R1.Grant

From R1,R3

Where R1.FIO=R3.Fio and Gr=4110

3. Факультеты, студенты которых принимают участие во всех гарантах.

Select Fak

From (SELECT distinct Fak,Grant

From R1,R3,R4

Where R1.FIO=R3.Fio and R3.Gr=R4.Gr)

Group by Fak

Having count(*)=(Select count(*) From (Select distinct Grant From R2))

4. Работы, представленные студентами различных факультетов.

Select Rab

From (SELECT distinct Rab,Fak

From R1,R3,R4

Where R1.FIO=R3.Fio and R3.Gr=R4.Gr)

Group by Rab

Having count(*)>1

Карточка 34

1. Исполнителей, которые по одному проекту сдали более одного этапа.

SELECT distinct a.Fio

From T1 as a,T1 as b

Where A.Fio=b.Fio and a.Proekt=b.Proekt and a.Itap<>b.Itap

2. Исполнителей, которые сдали все этапы по всем проектам, из тех, по которым работает отдел.

Select Fio

From T2

Where Otdel in

(SELECT Otdel

FROM T4

WHERE (Proekt in (SELECT DISTINCT T1.Proekt FROM T3,T1 Where T1.Proekt=T3.Proekt and Otc is not Null Group by T1.Proekt Having max(T1.Itap)=max(T3.Itap)))

and (Otdel not in(Select Otdel From T4 Where (Proekt in (SELECT DISTINCT T1.Proekt FROM T3,T1 Where T1.Proekt=T3.Proekt Group by T1.Proekt Having max(T1.Itap)<>max(T3.Itap))))))

3. Отделы, в которых имеются исполнители, не сдавшие ни одного этапа.

SELECT distinct Otdel

FROM T1,T4

Where T1.Proekt=T4.Proekt and Otc is Null and Itap=1

4. Отделы, в которых нет исполнителей, не сдавших ни одного этапа по какому-либо проекту.

Select distinct Otdel

From T2

Where (FIO not in (SELECT distinct Fio FROM T1 Where Otc is Null and Itap=1))

and (Otdel not in (Select distinct Otdel From T2 Where (FIO in (SELECT distinct Fio FROM T1 Where Otc is Null and Itap=1))))

5. Проекты, по которым имеются задолженности (т.е. исполнители, не сдавшие ни одного этапа).

SELECT distinct Proekt

FROM T1

Where Otc is Null and Itap=1

1(?),23(?)

Самый первый лист

Филиалы, клиенты которых не имеют счетов в других филиалах.

SELECT DISTINCT FILIAL

FROM (SELECT R1.FILIAL, R1.FIO

FROM R1

GROUP BY R1.FILIAL, R1.FIO)

GROUP BY FILIAL,FIO

HAVING COUNT(*)=1

Клиентов, которые имеют счета во всех филиалах данного банка.

SELECT FIO

FROM

(SELECT DISTINCT FIO,FILIAL

FROM R1

GROUP BY FIO,FILIAL)

GROUP BY FIO

HAVING COUNT(FIO)=(SELECT COUNT(*) FROM R2);

Клиентов, которые имеют только один счет в одном филиале банка.

SELECT R1.FIO

FROM R1

GROUP BY R1.FIO

HAVING COUNT(*)=1

Клиенты, которые имеют счета в нескольких филиалах банка, расположенных только в одном районе.

SELECT FIO

FROM

(SELECT R1.FIO, R2.RAION

FROM R1 INNER JOIN R2 ON R1.FILIAL = R2.FILIAL

GROUP BY R1.FIO, R1.FILIAL, R2.RAION)

GROUP BY FIO,RAION

HAVING COUNT(*)>1

2(?), 12

Самая вторая страница

1. Клиентов, заключивших договоры с несколькими филиалами.

SELECT CLIENT

FROM

(SELECT R2.Client, R3.Filial

FROM R2 INNER JOIN R3 ON R2.NDog = R3.NDog

GROUP BY R2.Client, R3.Filial)

GROUP BY CLIENT

HAVING COUNT(*)>1

2. Филиалы, которые работают с клиентами только одной страны.

SELECT FILIAL

FROM

(SELECT R3.Filial, R2.Coutry

FROM R2 INNER JOIN R3 ON R2.NDog = R3.NDog

GROUP BY R3.Filial, R2.Coutry)

GROUP BY FILIAL

HAVING COUNT(*)=1

3. Клиентов, которые заключили несколько договоров с одним филиалом.

SELECT CLIENT

FROM R2

WHERE CLIENT NOT IN

(SELECT CLIENT

FROM

(SELECT R2.Client, R3.Filial FROM R2 INNER JOIN R3 ON R2.NDog = R3.NDog

GROUP BY R2.Client, R3.Filial)

GROUP BY CLIENT HAVING COUNT(*)>1)

GROUP BY CLIENT

HAVING COUNT(*)>1

4. Филиалы, которые заключили договоры только с клиентами из той же станы, в которой расположен этот филиал.

SELECT FILIAL

FROM

(SELECT R1.Filial, R1.Country, R2.Country

FROM (R2 INNER JOIN R3 ON R2.NDog = R3.NDog) INNER JOIN R1 ON R3.Filial = R1.Filial

GROUP BY R1.Filial, R1.Country, R2.Country)

GROUP BY R1.FILIAL, R1.COUNTRY

HAVING COUNT(*)=1

3,24

Самая третья страница

1. Заказчиков, кот. работают со всеми филиалами фирмы, но покупают только один товар.

SELECT ZAK FROM(SELECT DISTINCT R3.Tovar, R2.ZakFROM R2 INNER JOIN R3 ON R2.NZak = R3.NZAKWHERE R2.Zak In (SELECT ZAKFROM R2GROUP BY ZAKHAVING COUNT(FILIAL)=(SELECT COUNT(FILIAL) FROM R1)GROUP BY R2.Zak,R3.Tovar)GROUP BY ZAKHAVING COUNT(*)=1

R4=(R2[R2.ZAK=R3.ZAK]R3)[ZAK,TOVAR]R5=(R4[ZAK=ZAK & TOVAR<>TOVAR]R4)[ZAK]R6=R2[ZAK] \ R5 <– заказчики, пок. только 1 товар.R7=R1[FILIAL] R2[ZAK]R8=R7 \ R2[FILIAL,ZAK] R9=R2[ZAK] \ R8[ZAK] <– зак., раб. со всеми фил.R10=R9?R6

2. Филиалы фирмы, которые торгуют всеми товарами.

SELECT FILIALFROM(SELECT DISTINCT R2.Filial, R3.Tovar FROM R2 INNER JOIN R3 ON R2.NZak = R3.NZAK GROUP BY R2.Filial, R3.Tovar)GROUP BY FILIALHAVING COUNT(*)= (SELECT COUNT(TOVAR) FROM (SELECT DISTINCT TOVAR FROM R3))

R4=R2[FILIAL] R3[TOVAR]R5=(R2[R2.NZAK=R3.NZAK]R3)[FILIAL,TOVAR]R6=(R4 \ R5)[FILIAL] – фил., кот НЕ торг. всеми товарамиR7=R1[FILIAL] \ R6

3. Товары, которые фирма продает только в одной стране.

SELECT TOVAR FROM(SELECT TOVAR,COUNTRYFROM (R1 INNER JOIN R2 ON R1.FILIAL=R2.FILIAL) INNER JOIN R3 ON R2.NZAK=R3.NZAKGROUP BY TOVAR, COUNTRY)GROUP BY TOVARHAVING COUNT(*)=1

R4=R1[R1.FILIAL=R2.FILIAL]R2R5=(R4[R4.NZAK=R3.NZAK]R3)[COUNTRY,TOVAR]R6=(R6[TOVAR=TOVAR & COUNTRY<>COUNTRY]R6) [TOVAR] – товар, прод. в разных странахR7=R3[TOVAR] \ R6

4. Заказчики, кот. работают с филиалами фирмы, кот. расположены только в одной стране.

SELECT ZAKFROM(SELECT R1.FILIAL,ZAKFROM R1 INNER JOIN R2 ON R1.FILIAL= R2.FILIALGROUP BY ZAK,R1.FILIAL)GROUP BY ZAKHAVING COUNT(*)=1

R4=(R2[R2.FILIAL=R1.FILIAL]R1)[ZAK,COUNTRY]R5=(R4[ZAK=ZAK & COUNTRY<> COUNTRY]R4)[ZAK]R6=R2[ZAK] \ R5

4(?,1-), 25

Карточка 1(5 стр)

1. Файлы, которые имеют нескольких владельцев.

SELECT R1.FILE

FROM R1

GROUP BY R1.FILE

HAVING COUNT(*)>1

2. Программы, которые работают только с одним файлом.

SELECT PROG

FROM R2

GROUP BY PROG

HAVING COUNT(*)=1

3. Файлы, которые имеют одно и тоже имя, но расположены, на различных дисках (один и тот же файл может дублироваться на одном и том же диске несколько раз).

SELECT FILE

FROM

(SELECT FILE,DISC

FROM R3

GROUP BY FILE,DISC)

GROUP BY FILE

HAVING COUNT(FILE)>1

4. Файлы, с которыми работают все программы.

SELECT PROG

FROM R2

GROUP BY PROG

HAVING COUNT(*)=

(SELECT COUNT(FILE)

FROM

(SELECT DISTINCT FILE

FROM R1))

5. Файлы, владельцами которых являются все пользователи ПЭВМ.

SELECT FILE

FROM R1

GROUP BY FILE

HAVING COUNT(*)=

(SELECT COUNT(OWNER)

FROM

(SELECT DISTINCT OWNER

FROM R1))

Карточка 31

1. Группы, все студенты которых сдали все экзамены с первого раза на оценку >=3.

SELECT ГРУППАFROM((R5 NATURAL JOIN R2 AS B) LEFT JOIN (SELECT * FROM R1 WHERE ОЦЕНКА>=3 GROUP BY ФИО,ДИСЦ HAVING COUNT(ДИСЦ)=1) USING ФИО, ДИСЦ)GROUP BY ГРУППАHAVING ОЦЕНКА<>NULL AND COUNT(DISTINCT ФИО) = (SELECT COUNT (*) FROM R2 WHERE R2.Группа = B.Группа)

R6=R1[R1.FIO_S=R2.FIO_S]R2 – тбл.: гр., ФИО_С,дисц.,оц.R7=R5[R5.GROUP=R2.GROUP]R2 – гр,ФИО_С,дисц. (д.б.)R8=(R6[BALL<3])[GROUP] – группы с двоечникамиR9=(R7 \ R6[GROUP,FIO_S, SUBJ])[GROUP] – группы с не сдававшими студентами (есть в R7, но нет в R6)R10=R6[GROUP] \ R8 \ R9 – группы, которые сдавали экзамены, в которых нет двоечников, в которых нет не сдававших студентов

2. Дисциплины, по которым есть пересдававщие студенты.

R6=(R1[FIO_S=FIO_S & SUBJ=SUBJ & DATE<>DATE]R1) [SUBJ]

3. Факультеты, на которых нет задолженностей по сессии.

R6=(R1[BALL>=3])[FIO_S,SUBJ]R7=R6[R6.FIO_S=R2.FIO_S]R2R8=R7[R7.GROUP=R3.GROUP]R3 – фак., гр., фио, дисц. (есть)R9=R3[R3.GROUP=R5.GROUP]R5R10=R9[R9.GROUP=R2.GROUP]R2 – фак., гр., фио, дисц. (д.б.)R11=(R10 \ R[FAK] – фак-ты с должникамиR12=R3[FAK] \ R11

4. Преподавателей, на экзаменах у которых были получены оценки только “хорошо” и “отлично”.

R6=(R4[R4.SUBJ=R1.SUBJ]R1)[FIO_P,BALL]R7=(R6[BALL<=3])[FIO_P] – преподы с 2 и 3R8=R4[FIO_P] \ R7

6,49(?)

Карточка 32

1. Операторов, работающих с одинаковым программным обеспечением на нескольких рабочих станциях.

SELECT FIO

FROM R3

WHERE FIO IN

(SELECT R3.FIO

FROM R3

GROUP BY R3.FIO

HAVING Count(R3.WSTAT)>1)

GROUP BY SOFT,FIO

HAVING COUNT(SOFT)>1

2. Рабочие станции, связанные с несколькими серверами.

SELECT R1.WSTAT

FROM R1

GROUP BY R1.WSTAT

HAVING Count(R1.SERVER)>1

3. Программное обеспечение, установленное только на одной рабочей станции.

SELECT R2.SOFT

FROM R2

GROUP BY R2.SOFT

HAVING Count(*)=1

4. Серверы, связанные со всеми рабочими станциями

SELECT R1.SERVER

FROM R1

GROUP BY R1.SERVER

HAVING Count(R1.SERVER)=

(SELECT COUNT(WSTAT)

FROM

(SELECT DISTINCT WSTAT

FROM R1))

5. Операторов, работающих со всем программным обеспечением (указанным в R2).

SELECT FIO

FROM R3

GROUP BY FIO

HAVING Count(FIO)=

(SELECT COUNT(SOFT)

FROM

(SELECT DISTINCT SOFT

FROM R2))