count + group über 2 Tabellen?

Dr_Doom

Mitglied
Hallo, habe hier eine Oracle 10g Datanbank und möchte gern Informationen aus 2 Tabellen zusammentragen:

Der ungefähre Aufbau

Tabelle 1

id, id_material, name_material

tabelle 2

id, Id_material

------------

ich möchte nun eine Summe der Einträge aus Tabelle 2 groupiert nach dem Material, in einer Tabelle klappt das super

select id_material, count(*) from tabelle 2 group by id_material


Ich hätter aber gern den Materialname in der Auflsitung, aber diese Abfrage scheitert

select a.id_material, count(*), b.name_material from tabelle 2 a, tabelle 1b group by a.id_material

Könnte mir jemand kurz auf die Sprünge helfen?
 
Hallo,

um eine Spalte nach gruppieren selektieren zu können muss diese in der GROUP BY Bedingung auftauchen. Deine Anfrage bildet ein kartesisches Produkt über die Tabellen a und b da du keine Join-Bedingung angegeben hast, d.h. es werden a x b Datensätze statt a Datensätze.

select a.id_material, count(*), b.name_material from tabelle a, tabelle b
WHERE a.id_material=b.id_material group by a.id_material, b.name_material

Die Group Bedingung kannst du einfach ergänzen da b.name_material ja für gleiche a.id_material auch immer gleich sein muss.

Alternativ dürfte auch das funktionieren:

select a1.id_material, a1.anzahl, b.name_material FROM

(SELECT count(*) as anzahl, a.id_material from tabelle a
group by a.id_material) a1,
tabelle1 b WHERE a1.id_material=b.id_material

Vielleicht hilft dir das weiter.
 
Zurück