Moin,
bastel gerade an einem Projektmanagment Tool.
Habe jetzt folgendes Problem:
in einer Tabelle "user" werden alle mitarbeiter gespeichert
Tabelle "project" die Projektdaten und in der Tabelle "work" Daten für einzelne Arbeitsabschnitte.
Jetzt will ich mir eine Abfrage bauen, die mir alle Projekte anzeigt, bei denen seit mehr als 1nem Monat kein Eintrag durchgeführt wurde.
Hier das SQL Statement:
Die tabellen "project" und "work" sind über die project.id verknüpft,
Jedes Project hat einen Projectleiter (per userid) und jede Tätigkeit (=work) wird auch über die userid einem Mitarbeiter zugeordnet.
Jeder Mitarbeiter kann sowohl ein user wie auch Projektleiter sein, es gibt aber nur einen Projektleiter pro Projekt...
Und da setzt mein Problem an:
die obige Abfrage liefert mir die letzte Tätigkeit aller aktiven Projekte, bei denen seit mehr als einem Monat kein Eintrag stattgefunden hat. Ich hätte jetzt gerne noch den Namen des Users, der diesen letzten Eintrag gemacht hat (was nicht zwangsläufig der Projektleiter sein muß).
Dafür müsste ich aber die Tabelle 'user' nochmal ansprechen (bisher liefert diese mir den Projektleiter), sinngemäß:
LEFT JOIN user as worker ON work.userid = user.id
Habe leider keinen Schimmer, wie ich das angehen soll und bitte euch um Hilfe, Tips & Tricks
bastel gerade an einem Projektmanagment Tool.
Habe jetzt folgendes Problem:
in einer Tabelle "user" werden alle mitarbeiter gespeichert
Tabelle "project" die Projektdaten und in der Tabelle "work" Daten für einzelne Arbeitsabschnitte.
Jetzt will ich mir eine Abfrage bauen, die mir alle Projekte anzeigt, bei denen seit mehr als 1nem Monat kein Eintrag durchgeführt wurde.
Hier das SQL Statement:
PHP-Code:
select DISTINCT
project.name as Projektname, kunde.name as kundenname,
work.description as wComment, user.name as Projektleiter,
max(DATE_FORMAT(replace(work.datum,' ',''), '%Y%m')) as LastWorkDatum,
work.datum, (DATE_FORMAT(NOW(), '%Y%m') - 1) AS today,
work.id as work_id, work.projectid, work.userid as work_userid,
project.id as project_id, project.pleiter, project.finished, project.kundenid, kunde.id,
user.id as user_id, user.status, user.email
FROM work
LEFT JOIN project ON work.projectid = project.id
LEFT JOIN kunde ON project.kundenid = kunde.id
LEFT JOIN user ON project.pleiter = user.id
WHERE
project.finished = 'no'
AND
user.status > 0
group by project_id
having LastWorkDatum < today
order by user.id desc
Jedes Project hat einen Projectleiter (per userid) und jede Tätigkeit (=work) wird auch über die userid einem Mitarbeiter zugeordnet.
Jeder Mitarbeiter kann sowohl ein user wie auch Projektleiter sein, es gibt aber nur einen Projektleiter pro Projekt...
Und da setzt mein Problem an:
die obige Abfrage liefert mir die letzte Tätigkeit aller aktiven Projekte, bei denen seit mehr als einem Monat kein Eintrag stattgefunden hat. Ich hätte jetzt gerne noch den Namen des Users, der diesen letzten Eintrag gemacht hat (was nicht zwangsläufig der Projektleiter sein muß).
Dafür müsste ich aber die Tabelle 'user' nochmal ansprechen (bisher liefert diese mir den Projektleiter), sinngemäß:
LEFT JOIN user as worker ON work.userid = user.id
Habe leider keinen Schimmer, wie ich das angehen soll und bitte euch um Hilfe, Tips & Tricks
Kommentar