SELECT DISTINCT
personal.personalnr,
personal.nachname,
personal.vorname,
personal.kostenst AS KS_Personal,
personal.eintritt1,
personal.persstatus,
auftrag.auftragnr,
auftrag.kostenst AS KS_Auftrag,
auftrag.vonDatum AS vonDatum,
[COLOR="Red"]einsPers.DatumVon AS DatumVon[/COLOR]
FROM
personal
INNER JOIN
einsPers
ON
personal.personalnr = einsPers.personalnr
INNER JOIN
auftrag
ON
(
auftrag.auftragnr =
(
SELECT
MAX(auftrag.auftragnr)
FROM
einsPers,
auftrag
WHERE
auftrag.auftstatus = 2
AND personal.personalnr = einsPers.personalnr
AND auftrag.auftragnr = einsPers.auftragnr
)
)
WHERE
personal.persstatus = 2
OR personal.persstatus = 7
ORDER BY
personal.nachname
ASC
SELECT DISTINCT
personal.personalnr,
personal.nachname,
personal.vorname,
personal.kostenst AS KS_Personal,
personal.eintritt1,
personal.persstatus,
auftrag.auftragnr,
auftrag.kostenst AS KS_Auftrag,
[COLOR="Red"]einsPers.DatumVon AS DatumVon[/COLOR]
FROM
[COLOR="Red"]personal
INNER JOIN
einsPers
ON
(
einsPers.DatumVon =
(
SELECT
MAX(einsPers.DatumVon)[/COLOR]
FROM
einsPers,
auftrag,
[COLOR="Red"]personal[/COLOR]
WHERE
auftrag.auftstatus = 2
AND personal.personalnr = einsPers.personalnr
AND auftrag.auftragnr = einsPers.auftragnr
)
)
INNER JOIN
[COLOR="Red"]auftrag
ON
auftrag.auftragnr = einsPers.auftragnr[/COLOR]
WHERE
personal.persstatus = 2
OR personal.persstatus = 7
ORDER BY
personal.nachname
ASC
Dies liegt daran, das die Tabelle "einsPers"es führte dazu, dass zum jeweiligen ma jeder einsPers.DatumVon asugegeben wurde, also quasi das datumVon zu jedem einsatz, was ich nciht so ganz nachvollziehen kann![]()
personal.personalnr = einsPers.personalnr
Dies liegt hauptsächlich daran, dass du die Tabelle personal in das Subselect der ON-Klausel mit aufgenommen hast.die DatumVon-Spalte beinhaltet nur noch den höchsten Wert, aber den gleichen für jeden ma.
SELECT DISTINCT
personal.personalnr,
personal.nachname,
personal.vorname,
personal.kostenst AS KS_Personal,
personal.eintritt1,
personal.persstatus,
auftrag.auftragnr,
auftrag.kostenst AS KS_Auftrag,
auftrag.vonDatum AS vonDatum,
einsPers.DatumVon AS DatumVon
FROM
personal
INNER JOIN
einsPers
ON
einsPers.DatumVon =
(
SELECT
MAX(einsPers.DatumVon)
FROM
einsPers,
auftrag
WHERE
auftrag.auftstatus = 2
AND personal.personalnr = einsPers.personalnr
AND auftrag.auftragnr = einsPers.auftragnr
)
INNER JOIN
auftrag
ON
auftrag.auftragnr = einsPers.auftragnr
WHERE
personal.persstatus = 2
OR personal.persstatus = 7
ORDER BY
personal.nachname
ASC
SELECT DISTINCT
personal.personalnr,
personal.nachname,
personal.vorname,
personal.kostenst AS KS_Personal,
personal.eintritt1,
personal.persstatus,
auftrag.auftragnr,
auftrag.kostenst AS KS_Auftrag,
auftrag.vonDatum AS vonDatum,
einsPers.DatumVon AS DatumVon
FROM
personal
INNER JOIN
einsPers
ON
einsPers.DatumVon =
(
SELECT
MAX(einsPers.DatumVon)
FROM
einsPers,
auftrag
WHERE
auftrag.auftstatus = 2
[COLOR="Red"]AND personal.personalnr = einsPers.personalnr[/COLOR]
AND auftrag.auftragnr = einsPers.auftragnr
)
INNER JOIN
auftrag
ON
auftrag.auftragnr = einsPers.auftragnr
WHERE
personal.persstatus = 2
OR personal.persstatus = 7
ORDER BY
personal.nachname
ASC
aber ohne personal bekommt er die spalte doch nicht![]()
FROM
personal