MySQL select MAX Datum aus verknüpften Tabelle

Habe ich diese MySQL - Abfrage:

SELECT 
    s.student_id,
    s.student_firstname,
    s.student_lastname,
    sd.student_startdate,
    sd.student_enddate,
    s.isActive,
    c.city_name,
    ctc.category_name
FROM
    students s
        INNER JOIN
    (SELECT sd1.student_id, sd1.student_startdate, sd1.student_enddate FROM studentdates sd1) sd ON sd.student_id = s.student_id
        INNER JOIN
    cityselections c ON c.city_id = s.student_city_id
        INNER JOIN
    coursecategory ctc ON s.student_course_category_id = ctc.category_id
WHERE
    sd.student_enddate BETWEEN CURDATE() AND ADDDATE(CURDATE(), INTERVAL 14 DAY)
        AND s.student_city_id NOT LIKE '1'
        AND s.student_city_id = 18
        AND s.isActive = 1
GROUP BY s.student_id
ORDER BY sd.student_enddate ASC , s.student_lastname , s.student_firstname

In der Tabelle studentdates es können mehrere student_startdate und student_enddate auf jeden student_id aber ich wollen, wählen die einzelnen Schüler MAX(student_enddate).

Wie kann das getan werden?

  • nutzen Sie einfach diese Funktion MAX(student_enddate);
  • Ja versucht es überall, aber noch nicht wählen das höchste Datum aus irgendeinem Grund.
  • WO sd.student_enddate= ( SELECT MAX(sd.student_enddate) FROM tablename und wenn Sie möchten, stellen Sie keine where-Bedingung )
  • MAX(student_enddate) funktioniert möglicherweise nicht, wenn student_enddate speichert Werte wie 2013-08-28. Ich denke, das Datum ist gegossen, um eine Ganzzahl, die würde halt 2013 bei der Berechnung der max. Vielleicht mit MIN(), MAX () und DATEDIFF() helfen würde.
InformationsquelleAutor David | 2013-04-10
Schreibe einen Kommentar