Для каждого отдела просмотрите имя исследователей и количество контрактов, заключенных исследователями, которые несут исключительную ответственность за контракты с «importi» на сумму более 100000 долларов США и «aziende» с типом дескриптора «TypeA =« Grandi Aziende » .
Это описание базы данных:
DIPARTIMENTO(CodD*, NomeD, Settore-Scientifico, Università)
RICERCATORE(CodR*, Nome, Cognome, DataNascita, CodD, DataPresaServizio)
AZIENDA(CodA*, NomeA, TipoA, Citt`a, Settore-Industriale)
CONTRATTO-DI-RICERCA(CodR-ResponsabileScientifico*, CodA*, DataInizio*,
Durata, Importo)
Это мой вопрос:
SELECT Nome, Count(R1.CodR) AS 'Numero Contratti'
FROM RICERCATORE AS R1,DIPARTIMENTO AS D1
WHERE R1.CodD = D1.CodD
AND R1.CodR IN (SELECT R2.CodR
FROM RICERCATORE AS R2, CONTRATTO-DI-RICERCA AS C1
WHERE R2.CodR = C1.CodR-ResponsabileScientifico
AND R2.CodR NOT IN (SELECT C2.CodR-ResponsabileScientifico
FROM CONTRATTO-DI-RICERCA AS C2
WHERE C2.Importo <= 100000
OR C2.CodA IN (SELECT A1.CodA
FROM AZIENDA AS A1
WHERE A1.TipoA <>
'Grande Azienda')))
GROUP BY D1.CodD
Это правильно? Есть ли более простой способ сформулировать запрос?