Abfrage-Problem, Hilfe!

28/04/2008 - 11:43 von Attila Krick | Report spam
Hi NG,

ich verweifeln noch und komme nicht weiter, wieleicht könnt ihr mir helfen?

Gegeben ist:
- Tabelle p=Personen (ID, Name)
- Tabelle a=Arbeitgeber (ID, Firma)
- Tabelle av=Arbeitsverhàltnisse (ID, PersonID, FirmaID, Eintrittsdatum)

Diese Tabellen stehen mit einer n:m Beziehung zueinander:
p - 1:n - av - n:1 a

Eine Person kann im lauf der Zeit den Arbeitgeber wechseln aber wo er
vorher war soll dokumentiert werden was durch die Tabelle av geschieht.

Jetzt möchte ich EINE Übersicht haben die mir alle Personen nur einmal
anzeigt und zusàtzlich den letzten Arbeitgeber sowei das Eintrittsdatum.

Mit dieser Unterabfrage komme ich nicht weiter, weill ich FirmaID und
Eintrittsdatum nicht mit einbeziehen kann:

SELECT PersonenID, MAX(Eintrittsdatum) AS x
FROM Arbeitsverhàltnisse
GROUP BY PersonenID

Wie kann ich das lösen?

Grüße

Attila
 

Lesen sie die antworten

#1 Christoph Ingenhaag
28/04/2008 - 13:20 | Warnen spam
"Attila Krick" wrote:

Hi NG,

ich verweifeln noch und komme nicht weiter, wieleicht könnt ihr mir helfen?

Gegeben ist:
- Tabelle p=Personen (ID, Name)
- Tabelle a=Arbeitgeber (ID, Firma)
- Tabelle av=Arbeitsverhàltnisse (ID, PersonID, FirmaID, Eintrittsdatum)

Diese Tabellen stehen mit einer n:m Beziehung zueinander:
p - 1:n - av - n:1 a

Eine Person kann im lauf der Zeit den Arbeitgeber wechseln aber wo er
vorher war soll dokumentiert werden was durch die Tabelle av geschieht.

Jetzt möchte ich EINE Übersicht haben die mir alle Personen nur einmal
anzeigt und zusàtzlich den letzten Arbeitgeber sowei das Eintrittsdatum.

Mit dieser Unterabfrage komme ich nicht weiter, weill ich FirmaID und
Eintrittsdatum nicht mit einbeziehen kann:

SELECT PersonenID, MAX(Eintrittsdatum) AS x
FROM Arbeitsverhàltnisse
GROUP BY PersonenID

Wie kann ich das lösen?

Grüße

Attila




Hi Attila,

die Hàlfte hattest du doch schon...


select
P.Name
,G.Firma
,A2.Eintrittsdatum
from Arbeitsverhàltnisse A1
inner join
(
select
PersonID
,max(Eintrittsdatum) Eintrittsdatum
from Arbeitsverhàltnisse
group by
PersonID
) A2
on
A1.PersonID = A2.PersonID
and A1.Eintrittsdatum = A2.Eintrittsdatum
inner join Personen P
on
A2.PersonID = P.ID
inner join Arbeitgeber G
on
A1.FirmaID = G.ID

Ähnliche fragen