SQL Oracle Select braucht den letzten Feinschliff

ChemZor

Ensign
Registriert
Nov. 2009
Beiträge
190
Hallo. Eine Frage zu Datenbanken:

Folgender Select: http://pastebin.com/b7F0eSH8
Folgende Ausgabe:
XCIyjNZ.jpg
Folgendes Problem: Ich möchte nur Doppelrollen ausgegeben haben. In meinem Fall also die Id: 1 und 2 sowie 9 und 10.

Ich hoffe mich verständlich ausgedrückt zu haben. Könnt ihr mir mit dem Select helfen? Mein Kopf qualmt und ich raff es gerade einfach nicht mehr. Vielen Dank.

Edit: Ein Group By könnte mir an der Stelle ja helfen wenn ich also ganz unten folgendes ergänze:

group by subs.name, subs.fname, mov.Title
having count(cha.CHARACTER) = 2

kommt aber als Fehlermeldung:
ORA-00979: Kein GROUP BY-Ausdruck
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
Fehler in Zeile: 66 Spalte: 70
 
Zuletzt bearbeitet:
Soweit ich mich nicht täusche müssen alle Selects auch in der group by Klausel vorkommen, also auch "anzahl_Rollen".
 
mirakulix schrieb:
Soweit ich mich nicht täusche müssen alle Selects auch in der group by Klausel vorkommen, also auch "anzahl_Rollen".

Stimmt an der Stelle leider nicht ganz. Ich kann es gerade auch nur schwer erklären. In dem Subselect gruppiere ich ja nach allem außer einem Attribut und das ist in dem Fall ja die anzahl_rollen denn diese zähle ich ja einfach nur.
 
nik_ schrieb:
hast du nen er-diagramm?

Leider nein.

Cast verbindet die drei Tabellen Actor (Namen der Schauspieler), Character (Namen der Rollen und Beschreibung) und Movie (Namen der Filme)
 
Zuletzt bearbeitet:
hast vielleicht die DDL zur erstellung der Tabellen und insert statements für die gezeigten Daten?
Dann könnte man es leichter nachstellen und beim SQL bauen helfen.

Evtl. könnte dir die with-clause helfen.
 
FUUUUUAAAARK dass das so umständlich wird hätte ich nicht gedacht. Ich habe die Dateien nicht und das ist die letzte Aufgabe vor der Prüfung morgen. Hier noch mal ein anderer Ansatz:

Hier das neue Statement: http://pastebin.com/M0ezkRfP
und hier die Ausgabe:
iy3E9uk.jpg


doch anstatt des Counts möchte ich die Namen der Rollen eingeblendet haben. Ich probiere das jetzt mal mit union.
Edith: union war natürlich bullshit.

BAM:
http://pastebin.com/sf8yCukh
Danke für die Hilfe!!!
 
Zuletzt bearbeitet:
wie hast du Zugriff auf die DB? Kannst du auf den Server verbinden?

wenn du auf die Server kommst könntest du via DataPump(expdp) die Daten exportieren.
Und anschließend von dem Dumpfile via impdp ein SQL File erzeugen.

Wenn du das nicht hast, könntest du vielleicht ein select * from Tab auf alle tabellen machen und das Ergebnis verfügbar machen.
Gern auch in reduzierter Form (where rownum <=x), so dass man an dein Beispiel kommt.

Ich versuch mal anhand deiner beiden SQLs was zu testen.

Edit: Ah hast es schon gelöst :-)
 
Zuletzt bearbeitet:
avengerlx schrieb:
wie hast du Zugriff auf die DB? Kannst du auf den Server verbinden?

wenn du auf die Server kommst könntest du via DataPump(expdp) die Daten exportieren.
Und anschließend von dem Dumpfile via impdp ein SQL File erzeugen.

Wenn du das nicht hast, könntest du vielleicht ein select * from Tab auf alle tabellen machen und das Ergebnis verfügbar machen.
Gern auch in reduzierter Form (where rownum <=x), so dass man an dein Beispiel kommt.

Ich versuch mal anhand deiner beiden SQLs was zu testen.

Ich habe es gelöst: http://pastebin.com/sf8yCukh

Danke für deine Hilfe. Ich raff noch nicht so ganz, wie der Subselect funktioniert und das war jetzt eher die harte Trial by Error variante, aber das Ergebnis zählt ja bekanntermaßen.
 
hätte man es nicht auch einfacher machen können in dem schaut, welche movie_id pro schauspieler gleich ist und ob die dazupassenden rollen ungleich sind?
 
Zurück
Oben