C# 如何在SQL中查找连续数据

C# 如何在SQL中查找连续数据,c#,sql-server-2012,C#,Sql Server 2012,我在SQL表中有以下数据: 我想按编号和ID为的组查找3个连续数据。结果为 4 A1 4 5 A1 3 6 A1 1 7 A1 0 1 A2 2 2 A2 4 3 A2 5 4 A2 1 3 A3 2 4 A3 3 5 A3 4 6 A3 2 如何编写查询。请提供帮助。以下是仅选择实际为3个连续行的行的查询: SELECT a.* FROM TABLE as a inner join TABLE as b on (

我在SQL表中有以下数据:

我想按编号和ID为的组查找3个连续数据。结果为

4   A1  4
5   A1  3
6   A1  1
7   A1  0
1   A2  2
2   A2  4
3   A2  5
4   A2  1
3   A3  2
4   A3  3
5   A3  4
6   A3  2


如何编写查询。请提供帮助。

以下是仅选择实际为3个连续行的行的查询:

SELECT a.*
FROM
TABLE as a
inner join
TABLE as b on (a.no+1=b.no and a.id=b.id)
inner join
TABLE as c on (a.no+2=c.no and a.id=c.id)
order by a.id, a.no
对于您的数据,它将提供:

4   a1  4
5   a1  3
1   a2  2
2   a2  4
3   a3  2
4   a3  3
行(6,a1,1)、(3,a2,5)和(5,a3,4)未被选择,因为没有(8,a1)(5,a2)和(7,a3)

结果是

4   A1  4
5   A1  3
6   A1  1
7   A1  0
1   A2  2
2   A2  4
3   A2  5
4   A2  1
3   A3  2
4   A3  3
5   A3  4
6   A3  2
我从这个链接找到了这个查询。


您是仅限于使用SQL还是从其他语言进行查询?为什么选择行(6,a1,1)、(3,a2,5)和(5,a3,4)?它们没有连续的第2行和第3行SSO,对于任何特定的
ID
值,您希望选择具有最低
No
值且在
No
中连续的3行(因此,
Qty
在我们选择的行中不起作用)?大多数人更喜欢SQL,但也使用C。@Damien_不信者
Qty
字段只检查示例:我想
Qty>=0和qtyTank帮助,但此查询不确定我的问题。唯一的问题。。。它给出的结果与您期望的结果不同