将Access转换/透视(“交叉表”)查询转换为SQL Server 2012
如何将以下Access交叉表查询转换为SQL Server 2012? 据我所知,Sql Server中不能使用TRANSFORM和PIVOT,但我不确定如何分解以下代码:将Access转换/透视(“交叉表”)查询转换为SQL Server 2012,sql,sql-server,ms-access,ms-access-2010,Sql,Sql Server,Ms Access,Ms Access 2010,如何将以下Access交叉表查询转换为SQL Server 2012? 据我所知,Sql Server中不能使用TRANSFORM和PIVOT,但我不确定如何分解以下代码: TRANSFORM Count(Stats.SessionNumber) AS CountOfSessionNumber SELECT Semesters.Semester, TermOptions.StudentDesc, Count(Stats.SessionNumber) AS TotalSessions FRO
TRANSFORM
Count(Stats.SessionNumber) AS CountOfSessionNumber
SELECT
Semesters.Semester, TermOptions.StudentDesc,
Count(Stats.SessionNumber) AS TotalSessions
FROM Semesters,
(StudentList_tbl
INNER JOIN
((StudentSemestersAndTerms
INNER JOIN
Stats ON (StudentSemestersAndTerms.StudentID = Stats.StudentID)
AND (StudentSemestersAndTerms.Semester = Stats.Semester))
INNER JOIN
TermOptions ON StudentSemestersAndTerms.Q3 = TermOptions.TermID)
ON StudentList_tbl.StudentID = StudentSemestersAndTerms.StudentID)
INNER JOIN
TrainersList ON StudentList_tbl.RTP = TrainersList.RTPID
WHERE
(((Stats.Semester)<[Semesters].[Semester]))
GROUP BY
Semesters.Semester, TermOptions.StudentDesc
PIVOT
TrainersList.ShortName;
您可以发布代码来创建示例表和示例行吗?我已经添加了示例数据,您期望的输出是什么?上面的示例数据显示了输出将是什么的部分显示输出表示您期望的最终结果。示例数据是输入数据,即您正在使用的所有表和行。我希望我的要求是明确的。
-------------------------------------------------------------------------
| Semester | StudentDesc | TotalSessions | FTL | GTY | MAU | CYU |
-------------------------------------------------------------------------
| 3 | Term 1 | 1420 | 250 | 100 | 50 | 1020 |
-------------------------------------------------------------------------
| 3 | Term 2 | 700 | 200 | 25 | 75 | 300 |
-------------------------------------------------------------------------
| 3 | Term 3 | 1400 | | 50 | 50 | 1300 |
-------------------------------------------------------------------------
The tables are:
Semesters
StudentList_tbl
StudentSemestersAndTerms
Stats
TermOptions
TrainersList
Row Heading
Semesters.Semester
TermOptions.StudentDesc
TrainersList.Shortname
Count
Stats.SessionNumber as TotalSessions