Bestimmten Datensatz herausfiltern

Hallo,
da SQL nicht grad mein Steckenpferd ist, brauch ich mal wieder unterstützung. Ich weiß nicht wie ich das lösen kann (wenn überhaupt möglich):

Ich habe zwei Tabellen (vorhaben, projekte)

Aufbau:
vorhaben: vorhaben_id, vorhabenname
projekte: projekt_id, projektname, vorhabenid

Daten:
Vorhaben:
vorhaben_id vorhabenname
1 v1
2 v2

Projekte:
projekt_id projektname vorhabenid
1 p1 1
2 p2 1
3 p3 2
4 p4 2
5 p5 1

Jetzt möchte ich gerne mit einem SQL-Befehl folgendes machen: von allen Projekten die zu einem Vorhaben gehören, möchte ich gerne nur ein einzigstes Projekt angezeigt bekommen. Dabei ist egal, welches Projekt. Hauptsache eins von einem Vorhaben.Wie kann ich das mit einem SQL-Befehl bewerkstelligen?

Gruß Olli

Hallo,

Hi,
versuchs mal so:

SELECT \*
FROM tbl\_vorhaben INNER JOIN tbl\_projekte ON tbl\_vorhaben.vorhabenid=tbl\_projekte.vorhabenid
WHERE projektid IN (
SELECT Max(projektid) FROM tbl\_projekte WHERE vorhabenid=tbl\_vorhaben.vorhabenid);

Gruß.Timo

da SQL nicht grad mein Steckenpferd ist, brauch ich mal wieder
unterstützung. Ich weiß nicht wie ich das lösen kann (wenn
überhaupt möglich):

Ich habe zwei Tabellen (vorhaben, projekte)

Aufbau:
vorhaben: vorhaben_id, vorhabenname
projekte: projekt_id, projektname, vorhabenid

Daten:
Vorhaben:
vorhaben_id vorhabenname
1 v1
2 v2

Projekte:
projekt_id projektname vorhabenid
1 p1 1
2 p2 1
3 p3 2
4 p4 2
5 p5 1

Jetzt möchte ich gerne mit einem SQL-Befehl folgendes machen:
von allen Projekten die zu einem Vorhaben gehören, möchte ich
gerne nur ein einzigstes Projekt angezeigt bekommen. Dabei ist
egal, welches Projekt. Hauptsache eins von einem Vorhaben.Wie
kann ich das mit einem SQL-Befehl bewerkstelligen?

Gruß Olli

Hallo!

Verstehe ich das richtig: Du willst zu jedem Vorhaben, zu dem es auch ein Projekt gibt das Vorhaben und irgendeines der Projekte?
Dann geht es auch ohne Sub-Select:

SELECT v.vorhabenname, max(p.projektname)
FROM tbl\_vorhaben v
 INNER JOIN tbl\_projekte p ON v.vorhabenid=p.vorhabenid
GROUP BY v.vorhabenname;

Ich bin mir nicht ganz sicher, ob die Syntax streng nach ANSI ist, evtl. musst du sie ein wenig anpassen, zumindest unter Oracle geht’s aber.

Gruß
Martin