Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

SQL Abfrage

Anwender / 11 Antworten / Flachansicht Nickles

Hallo Leute, ich habe ein ähnliches Problem wie logo3.
Ich kriege die Abfrage einfach nicht hin.

Situation
*********

Habe 3 Tabellen:

- tblInterpret (IDInterpret, Interpret)
- tblKategorie (IDKategorie, Kategorie)
- tblInterpret2Kategorie (fIDInterpret, fIDKategorie)

In der Tabelle tblInterpret2Kategorie werden den Interpreten verschiedene Kategorie zugewiesen.

Gewünschte Abfrage
*******************

Die Abfrage soll folgende Spalten enthalten:

- Interpret
- Anzahl Katgorie (in vielen Kategorien er zugeordnet ist)

Zusätzlich soll die Abfrage durch die Bedingung fIDKategorie=X eingeschränkt werden. (X steht für eine beliebige Kategorie).

Ich würde mich sehr über Hilfe freuen. Danke.

Anwender

bei Antwort benachrichtigen
d-oli Anwender „SQL Abfrage“
Optionen

Hallo

So was in der Art ...?


drop table tblInterpret;
drop table tblKategorie;
drop table tblInterpret2Kategorie;

create table tblInterpret
(
   IDInterpret NUMBER,
   Interpret VARCHAR2( 255 )
);

create table tblKategorie
(
   IDKategorie NUMBER,
   Kategorie VARCHAR2( 255 )
);

create table tblInterpret2Kategorie
(
   fIDInterpret NUMBER,
   fIDKategorie NUMBER
);

insert into tblInterpret values( 1, 'AC/DC' );
insert into tblInterpret values( 2, 'ABBA' );

insert into tblKategorie values( 1, 'Rock' );
insert into tblKategorie values( 2, 'Hard Rock' );
insert into tblKategorie values( 3, 'Pop' );

insert into tblInterpret2Kategorie values( 1, 1 );
insert into tblInterpret2Kategorie values( 1, 2 );
insert into tblInterpret2Kategorie values( 2, 3 );

commit;

select i.Interpret, count( i2k.fIDInterpret ) from tblInterpret2Kategorie i2k
join tblInterpret i
on i.IDInterpret = i2k.fIDInterpret
join tblKategorie k
on i2k.fIDKategorie = k.IDKategorie
and ( k.Kategorie = 'Rock' or k.Kategorie = 'Hard Rock' )
group by i.Interpret;



d-oli
Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen