I 2 Benutzerprofilfeldern Mitarbeiter-ID erstellt haben (Kurzbezeichnung: Employeeid) Organisation (Kurzname: Organisation)SQL Moodle Profil-Felder mit
Hier ist mein Code:
SELECT
MAX(CASE WHEN f.shortname = 'employeeid' THEN uid.data ELSE '' END) AS 'Employee No.',
CONCAT(u.firstname,' ',u.lastname) AS 'Full Name',
CONCAT('<a target="_new" href="%%WWWROOT%%/user/profile.php?id=',u.id,'">', u.username,'</a>') AS 'User Name',
MAX(CASE WHEN f.shortname = 'Organisation' THEN uid.data ELSE '' END) AS 'Organisation',
c.fullname AS 'Course',
DATE_FORMAT(FROM_UNIXTIME(p.timeenrolled),'%m/%d/%Y') AS 'Enrollment Date',
DATE_FORMAT(FROM_UNIXTIME(p.timecompleted),'%m/%d/%Y') AS 'Completion Date',
DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(p.timecompleted),INTERVAL 1 YEAR), '%m/%d/%Y') AS 'Expiration Date'
FROM prefix_course_completions AS p
JOIN prefix_course AS c ON p.course = c.id
JOIN prefix_user AS u ON p.userid = u.id
JOIN prefix_user_info_data AS uid ON uid.userid = u.id
JOIN prefix_user_info_field f ON uid.fieldid = f.id
WHERE f.shortname IN ('employeeid', 'Organisation') IS NOT NULL
%%FILTER_COURSES:Course%%
%%FILTER_USERS:uid.data%%
%%FILTER_SEARCHTEXT:uid.data:~%%
GROUP BY u.id
Die Ergebnisse in Die Tabelle ist vollkommen in Ordnung, aber wenn ich die Filter anwende, die ich habe (zB: Nach Organisation filtern, was ein Drop-down ist), werden die Daten in der Employee-Spalte entfernt, aber die anderen Daten in anderen Spalten angezeigt.
Wenn ich den Suchtext-Filter für Mitarbeiter-ID verwenden, sind die Daten in Organisation verschwunden.
Gibt es eine Möglichkeit, das zu verhindern? Hilfe bitte. Vielen Dank.
PS: Ich habe die SQL-Abfrage in Moodle Konfigurierbare Berichte bin mit
Hallo Danke für diesen wirklich super. machte nur eine kleine Änderung in den Filtern %% FILTER_USERS: org.data %% %% FILTER_SEARCHTEXT: employee.data: ~ %% Sie so viel Dank. Ich wünsche dir so viel frohe Weihnachten und ein glückliches neues Jahr @davosmith – Nightshade