如何在SQL中查询此查询?

时间:2019-05-03 14:14:15

标签: jquery mysql sql database oracle

对于每个部门视图,研究人员的姓名以及研究人员签订的合同数量,这些研究人员专门负责描述类型为'TypeA ='Grandi Aziende'的'importi'大于$ 100000和'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

这是正确的吗?有没有一种更简单的方式来制定查询?

1 个答案:

答案 0 :(得分:0)

只需链接表并过滤掉不需要的内容。如果您的表中存在一对多关系,我将使用count(distinct)。

print(result.groupby(axis=1, level=0).get_group(0).columns.levels[1])