mysql Subselects?

wachteldonk

Erfahrenes Mitglied
Hallo,

ich verwende folgenden Query aber de rgibt mir z.B.als EIntrittsdatum nicht imemr das korrekte Datum zurück. Könnte das ein Problem bei der WHEREbedingung der Subselects sein oder woran kann das liegen?

Code:
SELECT 
   t1.MAID, 
   t1.nachname,
   t1.vorname, 
   ( 
   SELECT 
     t2.datum 
   FROM 
     0003_01_beschaeftigungsverlauf AS t2  
   WHERE 
     t2.typ = 'Austritt' 
   AND 
       t2.MAID = t1.MAID 
   ORDER BY 
     t2.datum DESC 
  LIMIT 
     1 
   ) AS lastaustrittsdatum, 
   ( 
   SELECT 
     t3.datum 
   FROM 
     0003_01_beschaeftigungsverlauf AS t3  
   WHERE 
     t3.typ = 'Eintritt' 
   AND 
       t3.MAID = t1.MAID 
   ORDER BY 
     t3.datum DESC 
   LIMIT 
     1 
   ) AS lasteintrittsdatum, 
   ( 
   SELECT 
     t4.datum 
   FROM 
     0003_01_beschaeftigungsverlauf AS t4  
   WHERE 
     t4.typ = 'Eintritt Maßnahme' 
   AND 
       t4.MAID = t1.MAID 
   ORDER BY 
     t4.datum DESC 
   LIMIT 
     1 
   ) AS lasteintrittmassnahmesdatum 
FROM 
   0003_00_main AS t1 
WHERE 
   ( 
   SELECT 
     t5.datum 
   FROM 
     0003_01_beschaeftigungsverlauf AS t5  
   WHERE 
     t5.typ = 'Austritt' 
   AND 
       t5.MAID = t1.MAID 
   ORDER BY 
     t5.datum DESC 
   LIMIT 
     1 
  STRsql = STRsql & "   ) > '1999-01-01' 
ORDER BY 
   MAID ASC
 
Zuletzt bearbeitet:
Hi,

poste bitte die zusammengesetzte Abfrage in vernünftig formatierter Form und nicht den Quelltext irgendeiner Programmiersprache, die hier nicht jeder kennt.
Dann wäre es noch hilfreich, wenn Du beschreibst, was diese Abfrage überhaupt ergeben soll.

LG
 
Hallo,

es gibt verschiedene Eintritts und Austrittsdatumswerte pro Mitarbeiter. Ich will den jeweils letzten Wert davon pro Mitarbeite rhaben
 
Augen auf beim rumjaulen!;)

Ach ja, bisher ist mir nur aufgefallen , das das Eintrittsdatum falsch ist. Das Austrittsdatum war meistens ok
 
Zuletzt bearbeitet:
Augen auf beim rumjaulen!;)

Ersten hat das nichts mit rumjaulen zu tun, zweitens hast Du das erst nach Deiner Antwort geändert, was ich nicht mehr gesehen habe... :rolleyes:

Und im Datenbankforum ist es durchaus hilfreich, wenn die Problembeschreibung mal etwas ausführlicher ausfällt, dann muss man den zugrunde liegenden Datenbankaufbau nicht mühsam aus der Query erraten.

Sollte mir das dennoch gelungen sein, ist Deine Abfrage viel zu kompliziert. Mach einen einfachen Join auf diese Beschäftigungsverlauf-Tabelle, gruppiere diesen nach Mitarbeiter und arbeite mit MAX() und IF(), um jeweils das höchste Datum für einen bestimmten Typ zu bekommen.

LG
 
Zurück