0

我从来没有在这里发过帖子,所以希望一切顺利:)。我正在使用 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

请注意,Teacher_ID 每个 COURSE+SECTION 只能存在一次。

有任何想法吗?我做错了吗?

4

1 回答 1

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 发生了什么,看起来有重复的值,你明白为什么吗?再次查看原始表格。

对不起,我的英语不好!

于 2013-08-14T02:59:48.417 回答