我目前正在使用 sql server 并编写一个存储过程来检索一些数据。我的要求如下:
Table A:PersonId,FirstName,LastName,Address,CourseId
(Primary Key For Table B,Foreign Key Here)
Table B:CourseDescription,CourseId
现在,对于每门课程,可能有多个学生注册了该课程。我的要求是连接每个学生LastName,FirstName。如果一门课程中有 3 个或更多学生,我们必须在结果中将另一个标志值设置为“Y”。我已经使用 temp table 完成了 Stored proc,并逐步更新它。我的存储过程也是这样的:临时表有列:
SeqId,CourseId,CourseDescription,StudentNameConcat,IsMoreThan3
首先我更新课程ID,描述。然后从这个表中,我根据序列 id(SeqId) 循环并检索学生姓名列表作为列值并将其连接到声明的变量中。
这种方法不好,因为它不是基于集合的方法,我相信在使用内部查询或循环连接的单个查询中必须有另一种方法。我仍在阅读并尝试在单个查询中实现它。但仍然没有得到任何线索。