Hallo,
ich habe eine Tabelle mitarbeiter und eine Tabelle gehaelter.
Tabelle Mitarbeiter: name und mitarbeiter_id
Tabelle Gehälter: mitarbeiter_id, gehalt, datum
Es kann sein, dass ein Mitarbeiter mehrere Eintraege in gehaelter hat zu einem bestimmten datum oder gar keinen eintrag.
Ich möchte nun zu einem bestimmten datum eine liste aller mitarbeiter mit deren gehalt zum aktuellen datum.
Bislang habe ich folgende Abfrage, zb. zum 31.10.2007:
Es sollten bei mir 88 Datensaetze raus kommen, erhalte aber nur 44 (Zufall dass genau die Haelfte?).
Was mache ich da bloss falsch, denn komischerweise erscheinen in den 44 Datensaetzen z.b. Mitarbeiter die kein Gehalt haben und andere die auch kein Gehalt (Eintrag in Tabelle )haben nicht
Bin euch dankbar im Voraus.
Gruss Thomas
ich habe eine Tabelle mitarbeiter und eine Tabelle gehaelter.
Tabelle Mitarbeiter: name und mitarbeiter_id
Tabelle Gehälter: mitarbeiter_id, gehalt, datum
Es kann sein, dass ein Mitarbeiter mehrere Eintraege in gehaelter hat zu einem bestimmten datum oder gar keinen eintrag.
Ich möchte nun zu einem bestimmten datum eine liste aller mitarbeiter mit deren gehalt zum aktuellen datum.
Bislang habe ich folgende Abfrage, zb. zum 31.10.2007:
PHP Code:
select name, gehalt from mitarbeiter as m
left outer join gehaelter as g on m.mitarbeiter_id=g.mitarbeiter_id
where (g.datum=
(select max(g2.datum) as id from gehaelter as g2
where g2.mitarbeiter_id=g.mitarbeiter_id
and g2.datum<='2007-12-31' )
or g.datum is NULL)
Was mache ich da bloss falsch, denn komischerweise erscheinen in den 44 Datensaetzen z.b. Mitarbeiter die kein Gehalt haben und andere die auch kein Gehalt (Eintrag in Tabelle )haben nicht
Bin euch dankbar im Voraus.
Gruss Thomas
Comment