【发布时间】:2018-01-21 14:13:41
【问题描述】:
我有一张表格,上面有不同问题的答案,所有问题都有编号。基本上有这些列:IdAnswer(对于表格中的每个答案都是唯一的)、IdUser(即使同一用户第二次回答问题也不会重复)、IdQuestion 和Answer。
IdAnswer IdUser IdQuestion Answer
1 John 1 0
2 John 4 1
3 John 5 1
4 John 6 0
5 Bob 1 1
6 Bob 3 1
7 Bob 5 0
8 Mark 2 0
9 Mark 7 1
10 Mark 5 0
我想从该表中选择特定问题的所有答案(例如,IdQuestion = 5),以及每个用户在第 5 个问题之前回答的最后一个问题。
最后我需要一个应该是这样的表格:
IdAnswer IdUser IdQuestion Answer
2 John 4 1
3 John 5 1
6 Bob 3 1
7 Bob 5 0
9 Mark 7 1
10 Mark 5 0
我已经设法使用光标从第一个 SELECT 结果(按 IdQuestion 过滤)中遍历每一行,但我不确定这是否是最好的(也是最快的)这样做的方式。有没有更有效的方法可以达到同样的效果?
顺便说一句,我使用的是 SQL Server Management Studio 2012。
【问题讨论】:
-
什么 SQL 版本?将特定于版本的标签添加到您的问题中,因为解决方案可能会有所不同。
-
好的,刚做了,谢谢提示。