SommerKlausur 2009 SQL-Aufgabe!

Angabe is im Thread als bild

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

SommerKlausur 2009 SQL-Aufgabe!
Hier die angabe

und hier mein loesungsvorschlag:

Durchschnittliche Nettodauer einer Livereportage je Ort (4 Pkt.)

SELECT ort,avg(nettodauer)

FROM livereportage;
GROUP BY ort

Tage (jedoch keine doppeltenWerte) an denen Livereportagen uber Nurnberg nach
20:00 Uhr gesendet werden (5 Pkt.)

SELECT DISTINCT tag
FROM livereportage
JOIN onair USING (titel)
WHERE ort LIKE ‘N%rnberg’ AND beginn > 20:00;

Die Sendeanstalt “Frankenfunk” mochte zu jedem Reporter Name, Personalnum-
mer und Dauer seiner langsten Livesendung wissen (5 Pkt.)

SELECT name,persnr, max(nettodauer)
FROM reporter
JOIN onair USING (persnr)
JOIN livereportage USING (titel)
WHERE angestellt LIKE ‘Frankfurt’
GROUP BY persnr,name;

� SQL-Extended-Aufgabe (aka TOP n)
Wir wollen von den Angestellten, deren Angestelltennummern im Bereich von 2000
bis 4999 liegen die 4 Angestellten, die am l angsten Angestellt sind. Benutzen sie
dazu keine vendor-spezifischen Erweiterungen, sondern nur den SQL92-Standard.
Geben sie Name und Anstellungsbeginn aus und sortieren sie das Ergebnis nach
Anstellungsbeginn ansteigend.

CREATE VIEW angestellte AS
SELECT name,persnr,anstellungsbeginn
FROM reporter
WHERE persnr >=2000 AND persnr <=4999;

SELECT count() as rang,a1.name,a1.anstellungsbeginn
FROM angestellte a1, angestellte a2
WHERE a1.anstellungsbeginn >= a2.anstellungs.beginn
GROUP BY a1.persnr,a1.name,a1.anstellungsbeginn
HAVING count(
)<=4
ORDER BY count(*) ASC;