有点不太理解这句:[LEN]累加小于200.0的最大的[RID]值? 照我现在的理解试了一下 SELECT max(a.rid) FROM PIPES a WHERE (RID <> 0) AND ((SELECT SUM([len]) FROM PIPES WHERE rid <> 0 AND rid <= a.rid) < 200)
select * from PIPES where [RID] = (select Max([RID]) from PIPES where [RID]<>0 and sum([len]) <200 group by [RID] )
照我现在的理解试了一下
SELECT max(a.rid)
FROM PIPES a
WHERE (RID <> 0) AND
((SELECT SUM([len])
FROM PIPES
WHERE rid <> 0 AND rid <= a.rid) < 200)
CID RID LEN
----------- ----------- ------------------------
1 1 0.0
2 0 10.232206
3 0 10.250839
4 0 10.269472
5 0 10.288105
6 0 10.306738
7 0 10.325371
8 0 10.344005
9 0 10.362638
10 0 10.38127
11 2 10.38127
12 0 10.399903
13 0 10.418536
14 3 10.418536
15 4 10.418536
16 0 10.437169
17 0 10.455802
18 0 10.474435
19 0 10.493068
20 5 9.5117006
21 6 9.5303335
22 7 9.5489664
23 8 9.5676003
24 9 9.5862331
25 10 9.604866
26 11 9.6234989
27 12 9.6421318
28 13 9.6607647
29 14 9.6793976
30 15 9.6980305
31 16 9.7166634
32 17 9.7352962
33 18 9.7539291
34 19 9.772563
35 20 9.7911959
36 21 9.8098288
37 22 9.8284616
38 23 9.8470945
39 24 9.8657274
40 25 9.8843603
41 26 9.9029932
42 27 9.9216261
43 28 9.940259
44 29 9.9588919
45 30 9.9775248
46 31 9.9961586
47 0 10.014791
48 0 10.033424
49 0 10.052057
50 0 10.07069要求结果
[RID]
----------------
21