我正在開發一個web應用程序,現在我需要讓這個應用程序能夠從它的數據庫中生成一些報告。我有一個龐大的數據庫,結構相當複雜。我想出了一個大的SQL查詢,並且在我改變了一點數據庫結構之前,它和我一起工作得很好。我根據這些更改對其進行了修改,但仍然無效。我在SQLServer Management Studio中測試了它,但是失敗了。有時它告訴我,錯誤是語法。有時它告訴我,錯誤與''。這個SQL查詢有什麼問題?
數據庫的結構簡單:
職員表:名,用戶名,JOBTITLE,BadgeNo,EmpOrgType,DivisionID
部門表: DepartmentCode,DepartmentName的
課程表: CourseID,CourseName,GroupID
組表:的GroupID,組名
employee_courses: EMPLOYEEID,courseID
每個表中的第一屬性是每個表中的除了最後一個表中的主鍵,employee_courses表。
查詢是:
select *
from
(SELECT TOP (100) PERCENT
dbo.Divisions.DivisionName,
dbo.employee.EmpOrgType,
dbo.employee.Name,
T1.Username,
courses_2.CourseName,
CASE WHEN dbo.employee_courses.courseId IS NULL THEN '' ''
ELSE ''Yes'' END AS CourseId
FROM dbo.employee_courses
RIGHT OUTER JOIN dbo.courses AS courses_2
INNER JOIN (SELECT employee_1.Username,
courses_1.CourseID
FROM dbo.employee AS employee_1
CROSS JOIN dbo.courses AS courses_1)
AS T1 ON courses_2.CourseID = T1.CourseID
INNER JOIN dbo.employee ON T1.Username = dbo.employee.Username
ON dbo.employee_courses.employeeId = T1.Username AND
dbo.employee_courses.courseId = T1.CourseID
ORDER BY T1.Username
) DataTable
該查詢應檢索員工的信息:姓名,用戶名,JOBTITLE,BadgeNo,EmpOrgType和DivisionName。然後,它應該顯示他從課程表中提取的課程,並提及所選課程的組名。
什麼是錯誤消息? –
@ user976711:這個查詢是您的原始查詢的修改版本嗎?如果是這樣,你可以在問題中包含原始查詢嗎? –