Aufgabe 4.3¶

« Fragen-Übersicht zum SQL-Coach
Geben Sie alle Mitarbeiter mit gleichen Namen aus! Verwenden Sie dazu: EXISTS. Die Sortierung soll nach der persnr erfolgen.
Die Struktur der Datenbank¶
ABTEILUNG ( ABTNR , ABTNAME , BUDGET , CHEFNR ) CHEFNR » PERSONAL.PERSNR
AKTE ( PERSNR , DATUM , POSITION , GEHALT ) PERSNR » PERSONAL.PERSNR
PERSONAL ( PERSNR , VNAME , NNAME , PROJNR , TELEFONNR , GEHALT ) PROJNR » PROJEKT.PROJNR
PROJEKT ( PROJNR , BUDGET , ABTNR ) ABTNR » ABTEILUNG.ABTNR
Antwort?¶
???
Das gesuchte Ergebnis:
persnr | nname | vname
--------+-----------+-------
21 | Trophobie | Klaus
90 | Trophobie | Klaus
(2 rows)
-Geben Sie alle Mitarbeiter mit gleichen Namen aus! –Verwenden Sie dazu: EXISTS. Die Sortierung soll nach der persnr erfolgen.
–MIT IN: select persnr, nname,vname from personal where nname in (select nname from personal group by vname,nname having count(nname)>1) order by persnr;
–MIT EXISTS: select a.persnr, a.nname,a.vname from personal a where exists (select b.nname from personal b where a.nname=b.nname and a.vname=b.vname and a.persnr<>b.persnr) order by persnr;
–MIT SELF JOIN
select a.persnr, a.nname,a.vname from personal a join personal b on a.nname=b.nname and a.vname=b.vname and a.persnr<>b.persnr order by persnr;