Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL to find gaps
Message
From
19/01/2000 12:03:36
 
 
To
18/01/2000 20:41:10
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00319662
Message ID:
00319972
Views:
18
>>Anybody got any spiffy tricks to find the gaps in a range using SQL?
>>
>>Say I've got a table with:
>>
>>
>>Start   End
>>    1     5
>>    6     8
>>   12    15
>>   19    24
>>
>>
>>I'd like to find the gaps (9-11,16-18). One other thing, I'd also like to be able to give it some limits like "find the gaps between 10-17" so it should return 10-11, 16-17, in that case. Or do I have to do this by just brute force, since I need to look at 2 records at a time?
>>
>>TIA
>
>Everything is doable, but 'brute forse' will be better. Anyway, this is chain Select-SQL, you may combine them into one:
>1) Make sure that records are in physical order
>Select start,end from mytable into cursor tmp1 order by 1
>2) Get 'start' and 'end' cursors
>Select recno() as recno, start from tmp1 into cursor tmpstart
>Select recno()+1 as recno, end from tmp1 into cursor tmpend
>3) Join these cursors
>Select start-1,end+1 from tmpstart,tmpend ;
>where tmpstart.recno=tmpend.recno ;
>and start-end>1


Thanks, Ed! With just a little tweaking, I think I can make this do exactly what I want. Neat approach to the 2 record problem, too. That's what had me baffled with SQL. Thanks!
Fred
Microsoft Visual FoxPro MVP

foxcentral.net
Previous
Reply
Map
View

Click here to load this message in the networking platform