我从来没有在这里发帖,所以希望这很顺利:)。我正在使用SQL Server 2008 R2,我正在尝试从数据库中提取学生/课程信息。这是我正在处理的事情:
表dbo.StudentsSchedule
StudentsSchedule表包含以下字段: CRS_CODE CRS_SECT ID_NUMBER
表dbo.StaffSchedule:
当然 部分 Teacher_ID
这是我想要完成的事情:
我想将COURSE + SECTION CODE + Teacher_ID结合使用,将其用作唯一的“新课程ID”,然后将学生附加到其中。
我试过这个但是我的结果太多了。我期待大约300但接收超过10K +
SELECT dbo.StaffSchedule.COURSE+'-'+ dbo.StaffSchedule.SECTION+'-'+dbo.StaffSchedule.Teacher_ID) as [NewCourseID],
dbo.StudentSchedule.ID_NUMBER AS [StudentID],
from dbo.StaffSchedule INNER JOIN dbo.StudentSchedule ON
dbo.StaffSchedule.COURSE=dbo.StudentSchedule.CRS_CODE and
dbo.StaffSchedule.SECTION=dbo.StudentSchedule.CRS_SECT
请注意,每个COURSE + SECTION只能存在一次Teacher_ID。
有什么想法吗?我做错了吗?
答案 0 :(得分:1)
让我们试着看看它
表dbo.StaffSchedule:
COURSE SECTION Teacher_ID
1 1 23
1 1 24
1 3 55
1 3 24
表dbo.StudentsSchedule:
CRS_CODE CRS_SECT ID_NUMBER
1 1 44
1 1 45
1 3 89
1 3 44
此代码:
SELECT dbo.StaffSchedule.COURSE+'-'+ dbo.StaffSchedule.SECTION+'-'+dbo.StaffSchedule.Teacher_ID) as [NewCourseID], dbo.StudentSchedule.ID_NUMBER AS [StudentID]
from dbo.StaffSchedule INNER JOIN dbo.StudentSchedule ON
dbo.StaffSchedule.COURSE=dbo.StudentSchedule.CRS_CODE and
dbo.StaffSchedule.SECTION=dbo.StudentSchedule.CRS_SECT
将返回:
NewCourseID StudentID
1-1-23 44
1-1-23 45
1-1-24 44
1-1-24 45
1-3-55 89
1-3-24 89
1-3-55 44
1-3-24 44
可能是我看到的唯一问题是,对于相同的StudentID,您有多个值。我不知道你在演什么,所以我很乐意帮助你。
抱歉我的英语不好!我希望这可以帮助你!
为新评论编写
在NewCourseId中使用de Section非常简单
SELECT dbo.StaffSchedule.COURSE+'-'+dbo.StaffSchedule.Teacher_ID) as [NewCourseID], dbo.StudentSchedule.ID_NUMBER AS [StudentID]
from dbo.StaffSchedule INNER JOIN dbo.StudentSchedule ON
dbo.StaffSchedule.COURSE=dbo.StudentSchedule.CRS_CODE and
dbo.StaffSchedule.SECTION=dbo.StudentSchedule.CRS_SECT
但是......会发生什么? 结果将是:
NewCourseID StudentID
1-23 44
1-23 45
1-24 44
1-24 45
1-55 89
1-24 89
1-55 44
1-24 44
看看ID 1-24发生了什么,看起来有重复的值,你明白为什么吗?再看一下原始表格。
抱歉我的英文不好!