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
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
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