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.
SQL in Klausur vom WS12
Hi, kann mir jemand bei der SQL Aufgabe bei dieser Klausur weiterhelfen:
https://fsi.informatik.uni-erlangen.de/dw/_media/pruefungen/bachelor/konzmod-ws12-braindump.pdf
bei a) und b) habe ich:
[code] create view hilfe as
select Anfragender.f1 as pnr1,
anfragender.f2 as pnr2
from franfr f1, franfr f2
where anfragender.f1 = angefragter.f2;
select Pnr, count(*) as anzahl
from Person p join FrAnfr fa ON p.Pnr = f.Anfragender
where bestaetigt like ‘false’;
[/code]
kann mir bitte jemand der die aufgabe schon hat, die lösung zeigen?
Deine erste Anfrage passt nicht, nimm mal eine Tabelle mit einem einzigen Eintrag. Aus dem Kreuzprodukt kommt dann genau ein Paar raus, welches du mit deinem Where sofort filterst.
Ich weiß nicht, ob im SQL Standard union in Views erlaubt sind, aber ich wuerde es erstmal so machen:
create view Hilfe as
( select Anfragender, Angefragter
from FrAnfr
where bestaetigt = true )
union
( select Angefragter, Anfragender
from FrAnfr
where bestaetigt = true )
Die zweite Anfrage passt.