Blondine braucht HILFE! :-)

Hey Ihr!
Ich bin zur Zeit an ein paar SQL-Aufgaben und muss nun eine kleine Aufgabe lösen, die für mich leider zu schwer ist… oder ich denken einfach zu kompliziert!?
Das blöde an der Sache ist, dass ich diese Aufgabe bis spätestens morgen Abend gegen 21Uhr haben sollte!!
Es wäre also furchtbar nett, wenn sich irgendjemand erbarmen und diese Aufgabe lösen würde!

Hier die Aufgabe:
Ausgangssituation:

  1. Eine Tabelle „PC“
    Auszug:
    PC_Nr Raum_Nr Betriebssystem Speicher etc…
    31 A001 WIN 2000 …
    35 A001 WIN 98 …
    40 A002 OS/2
    41 A003 WIN 2000
    42 A003 LINUX

2.Diese Abfrage sollte, meinem Lehrer nach, mit einem INNER JOIN mit der gleichen Tabelle,lösbar sein!
Wenn es geht sollte der Befehl „HAVING COUNT“ auch gebraucht werden!

Die Aufgabe:
Ermitteln Sie bitte die Raumnummern, in denen PC’s stehen und in denen mehr wie ein Betriebssystem vorhanden ist!

Blondine?
Seit wann heißen Blondinen Gabriel?

Mal im ernst!
Was hier ein INNER JOIN nützen soll, ist mir schleierhaft! Gibt’s da vielleicht noch ne Tabelle?

Die Lösung bekommst Du aber so raus:

SELECT 
 Raum\_Nr
FROM 
 PC
GROUP BY 
 Raum\_Nr
HAVING 
 Count(PC.Betriebssystem)\>1;

Ich verstehe die Aufgabenstellung so, dass verschiedene Betriebssysteme gemeint sind. Sonst wär es echt relativ einfach, genau wie du sagst.

Die Lösung bekommst Du aber so raus:

SELECT
Raum_Nr
FROM
PC
GROUP BY
Raum_Nr
HAVING
Count(PC.Betriebssystem)>1;

äähm ich hab nur den Account von meinem Freund genommen!

Mittlerweile habe ich’s selber rausbekommen!
trotzdem vielen Dank! Hier die Lösung:

SELECT PC.Raum_Nr
FROM PC INNER JOIN PC AS tmp ON (PC.Raum_Nr = tmp.Raum_Nr) AND (PC.Betriebssystem tmp.Betriebssystem)
GROUP BY PC.Raum_Nr;

Das Problem an der Sache war, dass wir einene INNER JOIN verwenden sollten… (und das mit GROUP BY mit HAVING hat bei mir leider nicht funktioniert)