Eksempel på Azure SQL-databasespørringer for bruk av Microsoft Learn Organizational Reporting-tjenesten
Denne artikkelen hjelper deg med å spørre Microsoft Learn Organizational Reporting Service når du synkroniserer til en Azure SQL-database. Hvis du ikke er kjent med detaljene i Learn Organizational Reporting-tjenesten eller brukstilfellene for den, anbefaler vi at du ser gjennom funksjonsoversiktsartikkel først.
Få fremdrift for brukeren via Objekt-ID for Microsoft Entra
Kolonnen userId
refererer til bruker-ID-en for Learn-profilen, ikke objekt-ID-en for Microsoft Entra. Hvis du vil hente fremdrift for en bestemt bruker ved hjelp av en Objekt-ID for Microsoft Entra, kan du bli med i brukerne og fremdriftstabellene.
DECLARE @aadObjectId VARCHAR(50)
SELECT users.AADObjectId, progress.*
FROM users_TENANT_ID_HERE users
JOIN progress_TENANT_ID_HERE progress ON users.userId = progress.userId
WHERE users.AADObjectId = @aadObjectId
Få fremdrift med prosent fullført for et bestemt Learn-opplæringselement
Fullføring av prosent kan beregnes basert på durationInMinutes
, som kan beregnes mens du henter fremdriftsdata for bestemte opplæringselementer for Microsoft Learn.
DECLARE @sourceType NVARCHAR(50)
DECLARE @sourceUid NVARCHAR(300)
-- If querying for a specific user:
-- DECLARE @aadObjectId VARCHAR(50)
SELECT
users.AADObjectId,
@sourceUid AS SourceUid,
@sourceType AS SourceType,
progress.XPReason,
progress.XP,
progress.AwardedOn,
CASE
WHEN progress.AwardedOn IS NOT NULL THEN
(
SELECT 1
)
WHEN @sourceType = 'LearningPath' THEN
(
-- User completed minutes of learning path
SELECT SUM(m.durationInMinutes)
FROM HierarchyLearningPathModule lpm
JOIN HierarchyModule m ON m.moduleUid = lpm.ModuleUid
JOIN progress_TENANT_ID_HERE p ON p.SourceUid = lpm.ModuleUid
WHERE lpm.LearningPathUid = @sourceUid
AND p.userId = users.userId
AND p.SourceType = 'Module'
AND p.XPReason = 'points.module.basic.completed'
) / CAST(
(
-- Total duration of learning path
SELECT lp.durationInMinutes
FROM HierarchyLearningPath lp
WHERE lp.LearningPathUid = @sourceUid
) AS DECIMAL(5, 2))
WHEN @sourceType = 'Module' THEN
(
-- User completed minutes of module
SELECT SUM(unit.durationInMinutes)
FROM progress_TENANT_ID_HERE p
JOIN HierarchyUnit unit ON unit.unitUid = p.SourceUid
AND unit.moduleUid = @sourceUid
AND p.userId = users.userId
AND p.SourceType = 'Unit'
AND p.XPReason = 'points.unit.basic.completed'
) / CAST(
(
-- Total duration of module
SELECT m.durationInMinutes
FROM HierarchyModule m
WHERE m.moduleUid = @sourceUid
) AS DECIMAL(5, 2))
END AS PercentComplete
FROM users_TENANT_ID_HERE users
LEFT JOIN progress_TENANT_ID_HERE progress
ON users.userId = progress.userId
AND progress.SourceType = @sourceType
AND progress.SourceUid = @sourceUid
-- If querying for a specific user:
-- WHERE users.AADObjectId = @aadObjectId