Hallo zusammen
Ich habe eine Tabelle mit Interpreten und eine Tabelle mit Shows. Jeder Interpret kann eine beliebige Anzahl Shows haben.
Gesucht ist nun eine Abfrage, die mir ALLE Interpreten anzeigen und dazu die Anzahl Shows. Dabei möchte ich auch die Interpreten sehen, die noch 0 Shows haben.
Wer kann mir auf die Sprünge helfen?
Danke und Gruss
Martin
Hi Martin,
es soll so etwas aussehen:
SELECT COUNT(ref_id), ref_id
FROM ref_table
GROUP BY ref_id
wobei ref_id ist dein Fremdschlüssel
CU Dmitri
SELECT interpreten.name, count(shows.name)
FROM interpreten, shows
WHERE interpreten.nummer = shows.interpreten_nummer(+);
Das Pluszeichen erzeugt eine Outer-Join, um auch Interpreten ohne Schows anzuzeigen.(unter Oracle)
Gruss Janus
Tipp: Wieder einmal fehlt die Angabe ueber das benutzte DB-System. Ich persönlich bin es inzwischen leid, immer wieder darauf hinzuweisen und werde daher auf unvollstaendige Fragen zukuenftig selten antworten (sicher kein grosser Verlust - aber vielleicht bin ich ja nicht der Einzige den das stoert).
Hallo Janus
Du hast natürlich vollkommen recht, das DB-System gehört genannt. Ich habe schlicht vergessen zu schreiben, dass ich mit MS-SQL 7.x arbeite.
Danke trotzdem für Deine Antwort.
Gruss
Martin
Hallo Dmitri
Danke für Deine Antwort. Leider funktioniert es aber nicht. Ich habe ja bereits ein Count auf die n-Beziehung. Die zählt auch auch richtig, angezeigt werden aber nur die Werte, welche überhaupt vorhanden sind.
Ich arbeite übrigens mit MS-SQL 7.x
Danke und Gruss
Martin
es soll so etwas aussehen:
SELECT COUNT(ref_id), ref_id
FROM ref_table
GROUP BY ref_id
wobei ref_id ist dein Fremdschlüssel
CU Dmitri
Hi Martin,
ich arbeite mit Oracle und da habe ich eine View angelegt, wo alle Daten stehen, die du brauchst. Ich hoffe das geht auch bei dir:
CREATE OR REPLACE VIEW V_my_count (anzahl, ref_id)
AS
SELECT COUNT(ref_id), id
FROM ref_tab, tab
WHERE id = ref_id(+)
GROUP BY id
Cu Dmitri