You are on page 1of 3

-- P1 - 2021.

1:
-- 1 - a)
SELECT
DescrTipo,
avg(Volume) AS VolumeMedio
FROM DESCARTE AS d
INNER JOIN RESIDUO AS r ON (d.CodRes = r.CodRes)
INNER JOIN TIPORES AS t ON (r.CodTipo = t.CodTipo)
GROUP BY t.DescrTipo

-- 1 - b)
SELECT
DescrRes,
avg(Volume) AS VolumeMedio
FROM DESCARTE AS d
INNER JOIN RESIDUO AS r ON (d.CodRes = r.CodRes)
WHERE (r.DescrRes LIKE 'D%' OR r.DescrRes LIKE 'E%')
AND year(d.DataDesc) = '2022'
GROUP BY r.DescrRes
HAVING avg(Volume) < 50

-- 1 - c)
SELECT
r.DescrRes,
t.DescrTipo,
d.DataDesc,
d.Volume,
e.NomeEmp
FROM DESCARTE AS d
INNER JOIN RESIDUO AS r ON (r.CodRes = d.CodRes)
INNER JOIN EMPRESA AS e ON (e.CodEmp = d.CodEmp)
INNER JOIN TIPORES AS t ON (t.CodTipo = r.CodTipo)
WHERE quarter(d.DataDesc) = '1' AND year(e.DataFundacao) = '2015'

--1-d)
SELECT
r.DescrRes,
sum(d.Volume) AS VolumeTot
FROM DESCARTE AS d
INNER JOIN RESIDUO AS r ON (r.CodRes = d.CodRes)
INNER JOIN EMPRESA AS e ON (e.CodEmp = d.CodEmp)
INNER JOIN TIPORES AS t ON (t.CodTipo = r.CodTipo)
WHERE e.NomeEmp = 'Lixo certo' AND t.DescrTipo = 'Quimicos'
GROUP BY r.DescrRes
HAVING sum(d.Volume) > 100

--1-e)
SELECT
e.NomeEmp
count(*) AS TotalResDesc
FROM DESCARTE AS d
INNER JOIN EMPRESA AS e ON (e.CodEmp = d.CodRes)
WHERE year(d.DataDesc) = '2021'
GROUP BY e.NomeEmp
-- P1 - 2015.1:

--2-a)
SELECT
p.NomePac,
m.NomeMed,
e.DescrEsp
FROM ATENDIMENTO AS a
INNER JOIN MEDICO AS m ON (m.Matr = a.MatrMed)
INNER JOIN ESPECIALIDADE AS e ON (m.CodEspec = e.CodEsp)
INNER JOIN PACIENTE AS p ON (a.CodPac = p.CodPac)
WHERE m.Salario > 3000 AND month(a.Data) = '03' AND year(a.Data) =
'2015'
--2-b)
SELECT
e.DescrEsp,
avg(m.Salario) AS SalarioMedio
FROM MEDICO AS m
INNER JOIN ESPECIALIDADE AS e ON (m.CodEsp = e.CodEsp)
GROUP BY e.DescrEsp
--2-c)
SELECT
sum(CustoAtend) AS CustoTotal
FROM ATENDIMENTO AS a
INNER JOIN MEDICO AS m ON (a.MatrMed = m.Matr)
INNER JOIN ESPECIALIDADE AS e ON (m.CodEspec = e.CodEsp)
WHERE upper(e.DescrEsp) = 'CARDIOLOGIA' AND month(a.Data) = '01'
AND year(a.Data) = '2015'
--2-d)
SELECT
p.NomePac,
count(*) AS TotalAtends
FROM ATENDIMENTO AS a
INNER JOIN PACIENTE AS p ON (a.CodPac = p.CodPac)
WHERE year(a.Data) = '2014'
GROUP BY p.NomePac
--2-e)
SELECT
m.NomeMed,
m.Salario,
c.NomeMed AS NomeChefe,
FROM MEDICO AS m
LEFT JOIN MEDICO AS c ON (m.Matr = c.MatrChefe)
INNER JOIN ESPECIALIDADE AS e ON (c.CodEspec = e.CodEsp)
WHERE m.Salario BETWEEN 3000 AND 4000
AND e.DescrEsp = 'Ortopedia'

You might also like