需要为报告目的构建临时表或CTE。用户可以从下拉列表中选择位置和课程。
所涉及的表是包含所有员工的Person表和将从下拉列表中选择课程的Common Table Expression。
我需要能够创建一个临时表或CTE,其中包含来自人员表的员工ID字段和来自课程CTE的课程名称字段。
例如,如果选择了课程A,B,C,则每个员工将有三个记录,每个记录对应一个选定的课程。因此,员工1将在此临时表或CTE中拥有三条记录。我使用的是SQL Server 2008。
答案 0 :(得分:0)
您可以在CTE中使用INNER JOIN
或UNION
查询从多个表中获取值。所以如果你想为每个员工获得EMployeeId和CourseName,你可以像这样加入CTE里面的表
;WITH CTE
AS
(
SELECT
E.EmployeeId,
C.CourseNm
FROM dbo.Employee E
INNER JOIN dbo.Course C
ON E.CourseId = C.CourseId
)
SELECT
*
FROM CTE
如果你想使用Temp表,你可以尝试这个
SELECT
E.EmployeeId,
C.CourseNm
INTO #Temp
FROM dbo.Employee E
INNER JOIN dbo.Course C
ON E.CourseId = C.CourseId
SELECT * FROM #Temp