2) Donada la base de dades de l'HOSPITAL resoleu les consultes següents amb SQL d'Informix (sense repeticions i utilitzant la clàusula DISTINCT només quan calgui):
Obtenir els números i noms dels metges que han fet dues o més visites amb el mateix import i que guanyen un sou inferior al sou màxim (el sou mes gran) dels metges menys 50000.
Obtenir els noms i les especialitats dels metges que no han fet mai cap visita a cap malalt i tals que en el seu carrer (adreça) no hi viu cap malalt.
Obtenir els metges pels quals es compleix que el 10% del seu sou és superior a la suma dels imports de totes les visites que han fet. Concretament cal donar els números, els noms, els sous i la suma dels imports de totes les visites que han fet aquests metges, ordenats descendentment per sou i per nom.
d) Obtenir els números i els noms dels metges que tenen un sou inferior al promig del sou de tots els metges i que han fet una o més visites amb data_visita diferent de NULL a malalts que viuen a un carrer (adreça) diferent del carrer (adreça) on viu el metge. Mostrar el resultat ordenat ascendentment per número de metge i descendentment per nom de metge.
PRACTICA 2 IBD.
Apartat a)
SELECT DISTINCT m.num_met, m.nom_met
FROM metges m, visites v
WHERE (m.sou < (SELECT MAX(m.sou) FROM metges m ) -50000) AND m.num_met=v.num_met
GROUP BY m.num_met, m.nom_met, v.import
HAVING COUNT(*) >= 2;
Resultat:
| Num_met | Nom_met |
| 7215 | MIQUEL L. |
| 12528 | JORDI G. |
Apartat b)
SELECT m.nom_met, m.especialitat
FROM metges m
WHERE NOT EXISTS (SELECT * FROM visites v WHERE v.num_met=m.num_met)
AND m.adreca NOT IN (SELECT m.adreca FROM malalts mt WHERE m.adreca=mt.adreca);
Resultat:
| Nom_met | Especialitat |
| CARME M. | ENDOCRINOLOGIA |
Apartat c)
SELECT DISTINCT m.num_met, m.nom_met, m.sou, SUM(v.import) AS import_total
FROM metges m , visites v
WHERE (m.sou/10) > (SELECT SUM (v.import) FROM visites v WHERE m.num_met=v.num_met)
AND m.num_met=v.num_met
GROUP BY m.num_met, m.nom_met, m.sou;
Resultat:
| Num_met | Nom_met | Sou | Import_total |
| 1214 | DOLORS P. | 150000 | 14000 |
Apartat d)
SELECT DISTINCT m.num_met, m.nom_met
FROM metges m, visites v, malalts mt
WHERE m.sou < (SELECT AVG(m.sou) FROM metges m)
AND m.num_met =v.num_met
AND v.num_mal=mt.num_mal
AND v.data_visita IS NOT NULL
AND m.adreca <>MT.adreca
ORDER BY m.num_met ASC, m.nom_met DESC;
Resultat:
| Num_met | Nom_met |
| 1214 | DOLORS P. |
| 7215 | MIQUEL L. |
| 12528 | JORDI G. |