이 문서에서는 Azure SQL 데이터베이스에 동기화할 때 Microsoft Learn 조직 보고 서비스에 쿼리하는 방법을 도와드립니다. Learn Organizational Reporting Service의 세부 정보 또는 사용 사례에 대해 잘 모르는 경우 먼저 기능 개요 문서를 검토하는 것이 좋습니다.
Microsoft Entra 개체 ID를 통해 사용자 진행률 가져오기
userId 열은 Microsoft Entra 개체 ID가 아닌 Learn 프로필 사용자 ID를 참조합니다. Microsoft Entra 개체 ID를 사용하여 특정 사용자의 진행률을 검색하려면 사용자 및 진행률 테이블을 조인합니다.
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
특정 Learn 학습 항목에 대해 완료율로 진행률 가져오기
완료율은 특정 Microsoft Learn 학습 항목에 대한 프로세스 데이터를 검색하는 동안 계산할 수 있는 durationInMinutes을 기반으로 계산할 수 있습니다.
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