>>>I need to get the last 10 records of a table based on a condition. However, that table is pretty big and I don't want to use the TOP 10 clause as it will take too long. What type of approach can I use which would be the best? I am looking for a SQL approach. If that is not possible then I'll consider using code.
>>
>>Michel,
>>IMHO with SQL approaches there would be some overhead whatever you do. I'd try traditional old xbas approach and I think it would be much faster :
>>
>>
>>select myTable
>>go bottom
>>afields(arrStruc)
>>create cursor crsResult from array arrStruc
>>select myTable
>>lnFound = 0
>>do while lnFound < 10 and !bof()
>> if myCondition
>> scatter memvar
>> insert into crsResult from memvar
>> lnFound = lnFound + 1
>> endif
>> skip -1
>>enddo
>>select crsResult
>>brow
Cetin
>
>Yes, but the problem with that is that some conditions will require several thousands of skip which will take longer for them.
Yes. However I tried it and it's at least two times faster in worst case (found recs need skip to first recs in table). It was 2-400 times faster compared to SQL.
Cetin