Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы БД.doc
Скачиваний:
145
Добавлен:
02.04.2015
Размер:
390.14 Кб
Скачать

48. Даны отношения, моделирующие работу цеха:

R1

Шифр детали

Шифр заготовки

Материал

R2 R3

Шифр детали

Цех

Материал

Склад

  1. Детали, которые являются сборочными единицами (состоят из нескольких заготовок).

SELECT DISTINCT Detal FROM (SELECT Detal, Zag FROM R1 GROUP BY Detal, Zag HAVING Count(*) > 1)

  1. Детали, которые изготавливаются во всех цехах.

SELECT DISTINCT Detal FROM (SELECT Detal, Ceh FROM R2 GROUP BY Detal, Ceh HAVING Count(Ceh) = (SELECT Count(DISTINCT Ceh) FROM R2))

  1. Детали, которые изготавливаются только в одном цехе.

SELECT Detal FROM (SELECT Detal, Ceh FROM R2 GROUP BY Detal, Ceh HAVING Count(Ceh) = 1) as R4

  1. Детали, которые в данный момент можно запускать в производство (т.е. для которых есть на складе материал).

SELECt DISTINCT Detal FROM (SELECT DISTINCT Detal, Mat FROM R1 WHER Mat not in(SELECT DISTINCT Mat FROM R1 as R4 WHERE NOT EXISTS(SELECT top 1 * FROM R3 WHERE Mat = R4.Mat))) as R5

49. Даны отношения:

R1

Сервер

Рабочая станция

R2

Название программного обеспечения

Рабочая станция

R3

ФИО оператора

Рабочая станция

Название программного обеспечения

  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

  1. Рабочие станций, связанные с тремя серверами.

SELECT R1.Wstat FROM R1 GROUP BY R1.Wstat HAVING Count(R1.Server)=3

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

SELECT R3.Soft FROM R3 GROUP BY R3.Soft HAVING Count(*)=1

  1. Попарно вывести рабочие станции с одинаковым количеством установленных программ.

SELECT R4.Wstat, R5.Wstat FROM (SELECT Wstat, Count(Soft) as CS FROM R2 GROUP BY Wstat) as R4, (SELECT Wstat, Count(Soft) as CS FROM R2 GROUP BY Wstat) as R5 WHERE R4.Wstat <> R5.Wstat and R4.Cs = R5.Cs

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

SELECT Fio FROM R1 GROUP BY Fio HAVING Count(FIO)= (SELECT Count(Soft) FROM (SELECT DISTINCT Soft FROM R3))

50. Даны отношения:

R1

Организация

Город

R2

Благотворительный фонд

Город

R3

Организация

Благотворительный фонд

Размер отчислений

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

SELECT R3.Org FROM R1, R2, R3 WHERE R3.Org=R1.Org and R2.Fond=R3.Fond and R2.Gor=R1.Gor and (R3.Org not in (SELECT R3.Org FROM R1, R2, R3 WHERE R3.Org=R1.Org and R2.Fond=R3.Fond and R2.Gor<>R1.Gor))

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

SELECT R3.Fond FROM R1, R3, R2 WHERE R2.Fond=R3.Fond and R1.Org=R3.Org and R2.Gor<>R1.Gor and R3.Fond not in (SELECT DISTINCT R3.Fond FROM R1, R3, R2 WHERE R2.Fond=R3.Fond and R1.Org=R3.Org and R1.Gor=R2.Gor) GROUP BY R3.Fond HAVING COUNT(*)>1

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

SELECt DISTINCT Fond FROM (SELECT DISTINCT R3.Fond, R1.Gor FROM R3, R1 WHERE R1.Gor not in(SELECT DISTINCT Gor FROM R2) GROUP BY R3.Fond, R1.Gor HAVING Count(Gor) = (SELECT Count(DISTINCT Gor) FROM R1))

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

SELECT Fond FROM R1, R3 WHERE R1.Org=R3.Org GROUP BY Fond HAVING Count(R3.Org)=(SELECT Count(*) FROM R1)