Ich habe 3 verschiedene Abfragen, die die gleichen Daten anzeigen, aber für unterschiedliche Datumsintervalle. Ich bin mir nicht sicher, wie man die Abfragen am besten kombinieren kann, um alle Daten in einem zu zeigen. Ich bin nicht gut bei Joins oder verschachtelten Abfragen, so dass ich mir nicht sicher bin, wie das am besten funktioniert.Kombinieren Sie 3 Abfragen zu einem, Joins oder geschachtelte Abfragen verwenden?
Grundsätzlich möchte ich 4 Spalten haben: Associate, 30 Tage, 60 Tage und 90 Tage.
Abfrage 1:
SELECT cwd_user.display_name AS 'Associate', sum(worklog.timeworked/3600) AS '30 Days'
FROM worklog, cwd_user,cwd_membership
WHERE worklog.AUTHOR = cwd_user.user_name
and cwd_user.directory_id = cwd_membership.directory_id
and cwd_user.lower_user_name = cwd_membership.lower_child_name
and cwd_membership.membership_type = 'GROUP_USER'
and cwd_membership.lower_parent_name = 'atl_servicedesk_it_agents'
and worklog.STARTDATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
GROUP BY cwd_user. display_name
ORDER BY cwd_user.last_name;
Abfrage 2:
SELECT cwd_user.display_name AS 'Associate', sum(worklog.timeworked/3600) AS '60 Days'
FROM worklog, cwd_user,cwd_membership
WHERE worklog.AUTHOR = cwd_user.user_name
and cwd_user.directory_id = cwd_membership.directory_id
and cwd_user.lower_user_name = cwd_membership.lower_child_name
and cwd_membership.membership_type = 'GROUP_USER'
and cwd_membership.lower_parent_name = 'atl_servicedesk_it_agents'
and worklog.STARTDATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 60 DAY)
GROUP BY cwd_user. display_name
ORDER BY cwd_user.last_name;
Abfrage 3:
SELECT cwd_user.display_name AS 'Associate', sum(worklog.timeworked/3600) AS '90 Days'
FROM worklog, cwd_user,cwd_membership
WHERE worklog.AUTHOR = cwd_user.user_name
and cwd_user.directory_id = cwd_membership.directory_id
and cwd_user.lower_user_name = cwd_membership.lower_child_name
and cwd_membership.membership_type = 'GROUP_USER'
and cwd_membership.lower_parent_name = 'atl_servicedesk_it_agents'
and worklog.STARTDATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 90 DAY)
GROUP BY cwd_user. display_name
ORDER BY cwd_user.last_name;
Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple-sql- Abfrage – Strawberry