0
我有错误类型,错误代码和错误计数的表:SQL枢轴和加入
#ErrorCounts
ErrorCountID CourseID ErrorCodeID ErrorTypeID ErrorCount
1 1 1 1 10
2 1 2 1 4
3 1 3 2 5
#ErrorTypes
ErrorTypeID Description
1 'Direction'
2 'Generic'
3 'Information'
--And then 3 tables containing descriptions of all these errors types
#ErrorDirectionCodes
CodeID Description
1 'You are moving in the wrong direction'
2 'You are in the right direction'
#ErrorGenericCodes
CodeID Description
1 'Generic Error'
2 'Generic Message'
#ErrorInformationCodes
CodeID Description
1 'Wrong information'
2 'Typo information'
--And lastly a table for the courses
#Courses
CourseID UserID
1 10
2 11
--etc
我需要显示在每场失误的数量的报告,我得到这个:
SELECT
CASE
WHEN ErrorTypeID = 1 THEN 'Description Error'
WHEN ErrorTypeID = 2 THEN 'Generic Error'
WHEN ErrorTypeID = 3 THEN 'Information Error'
ELSE 'Unknown Error Type'
END AS ErrorType,
EC.ErrorCodeID,
COALESCE(
EDC.Description,
EGC.Description,
EIC.Description,
'Unknown Error Type'
) AS ErrorDescription
FROM ErrorCount EC
LEFT JOIN ErrorDirectionCodes AS EDC ON EDC.CodeID = EC.ErrorCodeID AND EC.ErrorTypeID = 1
LEFT JOIN ErrorGenericCodes AS EGC ON EGC.CodeID = EC.ErrorCodeID AND EC.ErrorTypeID = 2
LEFT JOIN ErrorInformationCodes AS EIC ON EIC.CodeID = EC.ErrorCodeID AND EC.ErrorTypeID = 3
GROUP BY EC.ErrorCodeID, EC.ErrorTypeID, EDC.Description, EGC.Description, EIC.Description
哪些群体通过自己的错误类型,但问题是下一个部分,在那里我有显示为列,发生这些错误的课程,像这样:
ErrorType ErrorCode ErrorDescription Course1 Course2
1 1 'You are moving in the wrong direction' 10 0
2 1 'Generic Error' 5 2
--etc
我读了如何PIVOT
的作品,但我仍然无法得到它的工作,我不知道怎么下JOIN云:
INNER JOIN Courses C ON C.CourseID = EC.CourseID
PIVOT (
?
)
我怎样才能得到这个工作PIVOT?
之前,你甚至得到你枢轴转动误差串的电流查询似乎关闭。重复#ErrorCounts并更改courseid并保留ErrorCodeID ErrorTypeID。你会看到你得到一个记录有多个错误代码,不同的描述,但相同的错误类型和错误代码。如果你尝试加入,这会让你变得非常笨拙。 – TYY 2014-11-05 21:34:56