Pretoria, South AfricaTraining venue Kigali, RwandaTraining venue Nairobi, KenyaTraining venue Accra, GhanaTraining venue Kampala, UgandaTraining venue Dubai, United Arab EmiratesTraining venue

Training Events by Venue

Choose a training event and apply directly. Browse upcoming face-to-face training opportunities and apply directly for your preferred course.

Pretoria, South Africa

November 2026

Accra, Ghana

November 2026

Nairobi, Kenya

November 2026

Kampala, Uganda

November 2026

Kigali, Rwanda

November 2026

Dubai, United Arab Emirates

November 2026

Livingstone, Zambia

November 2026

Port Louis, Mauritius

November 2026

Debug

sql: SELECT COUNT(*) FROM `userlevels` WHERE `userlevelid` = -2, executionMS: 0.00063109397888184

sql: SELECT `userlevelid`, `userlevelname` FROM `userlevels`, executionMS: 0.00029182434082031

sql: SELECT COUNT(*) FROM `userlevelpermissions` WHERE `userlevelid` = -2, executionMS: 0.00067305564880371

sql: SELECT `tablename`, `userlevelid`, `permission` FROM `userlevelpermissions` WHERE `userlevelid` IN (-2), executionMS: 0.0026240348815918

sql: SELECT a.Course_Title AS CourseID, COALESCE(c.Course_Title, CONCAT('Course #', a.Course_Title)) AS CourseName, c.Course_Code, c.Short_Description, a.Training_Dates, a.Month AS MonthID, COALESCE(m.Month, '') AS MonthName, a.Year, a.Venue AS VenueID, COALESCE(v.Venue, CONCAT('Venue #', a.Venue)) AS VenueName, a.Duration AS DurationID, CASE WHEN a.Duration = 1 THEN '1 Week' WHEN a.Duration = 2 THEN '2 Weeks' WHEN a.Duration IS NULL OR a.Duration = 0 THEN 'Duration Pending' ELSE CONCAT(a.Duration, ' Week(s)') END AS DurationName, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates, SUM(CASE WHEN a.Status = 1 THEN 1 ELSE 0 END) AS PendingApps, SUM(CASE WHEN a.Status = 2 THEN 1 ELSE 0 END) AS QuotedApps, SUM(CASE WHEN a.Status = 3 THEN 1 ELSE 0 END) AS MaybeApps, SUM(CASE WHEN a.Status = 4 THEN 1 ELSE 0 END) AS AttendingApps, SUM(CASE WHEN a.Status = 5 THEN 1 ELSE 0 END) AS PaidApps, SUM(CASE WHEN a.Status = 4 THEN IFNULL(NULLIF(a.delegates,0),1) ELSE 0 END) AS AttendingDelegates, SUM(CASE WHEN a.Status = 5 THEN IFNULL(NULLIF(a.delegates,0),1) ELSE 0 END) AS PaidDelegates, MIN(a.Application_ID) AS SampleApplicationID, MAX(a.Application_ID) AS LatestApplicationID, MAX(a.Created_Date) AS LatestAppliedDate FROM apply a LEFT JOIN courses c ON c.id = a.Course_Title LEFT JOIN venues v ON v.id = a.Venue LEFT JOIN months m ON m.Month_ID = a.Month WHERE a.TrainingType = 2 AND a.Course_Title IS NOT NULL AND a.Course_Title > 0 AND a.Venue IS NOT NULL AND a.Venue > 0 AND a.Venue <> 7 AND (a.Training_Dates IS NOT NULL AND TRIM(a.Training_Dates) <> '') AND a.Month = 11 AND a.Year = 2026 GROUP BY a.Course_Title, a.Training_Dates, a.Month, a.Year, a.Venue, a.Duration ORDER BY a.Year ASC, a.Month ASC, v.Venue ASC, c.Course_Title ASC, a.Training_Dates ASC, executionMS: 0.1311981678009

sql: SELECT v.id, v.Venue, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates FROM apply a INNER JOIN venues v ON v.id = a.Venue WHERE a.TrainingType = 2 AND v.id <> 7 GROUP BY v.id, v.Venue ORDER BY Applications DESC, Delegates DESC, v.Venue ASC, executionMS: 0.1277129650116

sql: SELECT DISTINCT m.Month_ID, m.Month FROM apply a LEFT JOIN months m ON m.Month_ID = a.Month WHERE a.TrainingType = 2 AND a.Venue <> 7 AND a.Month IS NOT NULL ORDER BY m.Month_ID ASC, executionMS: 0.14853000640869

sql: SELECT DISTINCT a.Year FROM apply a WHERE a.TrainingType = 2 AND a.Venue <> 7 AND a.Year IS NOT NULL ORDER BY a.Year ASC, executionMS: 0.095885038375854

sql: SELECT v.id, v.Venue AS VenueName, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates FROM apply a INNER JOIN venues v ON v.id = a.Venue WHERE a.TrainingType = 2 AND a.Venue <> 7 GROUP BY v.id, v.Venue ORDER BY Applications DESC, Delegates DESC, v.Venue ASC LIMIT 6, executionMS: 0.13417387008667