Thema: Delphi MySQL anfrage erstellen.

Einzelnen Beitrag anzeigen

Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#3

Re: MySQL anfrage erstellen.

  Alt 29. Okt 2008, 08:26
Ich bin mir nicht sicher, aber DeddyHs Vorschlag müsste falsch sein.
Bei einem Fehlzeitraum 2008-11-03 bis 2008-11-07 ergibt sich aus
SQL-Code:
A.Datum_von >= '2008-11-02'
AND A.Datum_bis <= '2008-11-05'
SQL-Code:
TRUE
AND FALSE
= FALSE
Damit wäre beim LEFT OUTER JOIN A.PersonalNr = NULL.
Der Mitarbeiter würde also selektiert werden, obwohl er nicht einsetzbar wäre.

Vorgehensweise:
Code:
Gib mir alle Spalten
aus Tabelle Personal
wo PersonalNr nicht in
    ( Gib mir alle PersonalNr
      aus Abwesenheitsliste
      wo Einsatzzeitraum in Fehlzeitraum fällt
    )
Mein Vorschlag:
SQL-Code:
SELECT P.*
FROM Personal P
WHERE P.PersonalNr != ALL (
    SELECT PersonalNr
    FROM abw_liste
    WHERE ( datum_von>=VON_WANN AND datum_von<=BIS_WANN ) OR
          ( datum_bis>=VON_WANN AND datum_bis<=BIS_WANN )
)
Übrigens solltest du Projektionen immer ausschreiben, also nicht den *-Operator nutzen.

LG,
Xong

PS: Ich hoffe, ich habe keine Fehler gemacht.
  Mit Zitat antworten Zitat