>>> create cursor Schnaps ; >>> ( c1 c(1), ; >>> c2 c(1),; >>> c3 c(1),; >>> iOrder I ; >>> ) >>> >>> insert into Schnaps values ('A', 'a', '1',1) >>> insert into Schnaps values ('A', 'b', '2',2) >>> insert into Schnaps values ('A', 'b', '3',3) >>> insert into Schnaps values ('A', 'b', '3',4) >>> insert into Schnaps values ('B', 'c', '4',5) >>> insert into Schnaps values ('B', 'd', '4',6) >>>>>>
>>>('A', 'a', '1',1) >>>('A', 'b', '2',2) >>>('A', 'b', '3',3) >>>('B', 'c', '4',5) >>>>>>
>>SELECT c1, MIN(c2) as c2, c3, MIN(iOrder) as iOrder FROM schnaps GROUP BY 1,3 >>>>
> create cursor Schnaps ; > ( c1 c(1), > c2 c(1),; > c3 c(1),; > iOrder I ; > ) > > insert into Schnaps values ('A', 'a', '1',1) > insert into Schnaps values ('A', 'b', '2',2) > insert into Schnaps values ('A', 'b', '3',3) > insert into Schnaps values ('A', 'b', '3',4) > insert into Schnaps values ('B', 'c', '4',6) > insert into Schnaps values ('B', 'd', '4',5) > insert into Schnaps values ('C', 'a', '4',7) >>
>('A', 'a', '1',1) >('A', 'b', '2',2) >('A', 'b', '3',3) >('B', 'd', '4',5) >>
>index on iorder tag _iOrder >scan for !deleted() > lc3 = c3 > skip > dele for c3==lc3 rest > locate for c3==lc3 >endscan >>
Select t1.* From Schnaps t1 ; INNER Join ; (Select Min(iOrder) As iOrder From Schnaps Group By c3) t2 ; ON t1.iOrder == t2.iOrder
Delete From Schnaps Where iOrder Not In ; (Select Min(iOrder) As iOrder From Schnaps Group By c3)IMHO message#1416414 is more complex than needed.