I'm finally getting back to this issue, and I've read the bits on
artfulsoftware. The example

SELECT
  a.id+1 AS 'Missing From',
  MIN(b.id) - 1 AS 'To'
FROM tbl AS a, tbl AS b
WHERE a.id < b.id
GROUP BY a.id
HAVING a.id < MIN(b.id) - 1;

Looks like exactly what I want. However, when I try it (prod is my tbl,
prod_num is my id) I get

mysql> select a.prod_num + 1 AS `Missing From`,
    ->   MIN(b.prod_num - 1) AS `To`
    -> from prod as a, prod as b
    -> where a.prod_num < b.prod_num
    -> group by a.prod_num
    -> having a.prod_num < min(b.prod_num) -1 ;
ERROR 1054 (42S22): Unknown column 'a.prod_num' in 'having clause'

I must be missing something obvious; or does this not work in 4.1.22?

Regards,
 
Jerry Schwartz
The Infoshop by Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032
 
860.674.8796 / FAX: 860.674.8341
 
www.the-infoshop.com
www.giiexpress.com
www.etudes-marche.com

>-----Original Message-----
>From: Peter Brawley [mailto:[EMAIL PROTECTED]
>Sent: Wednesday, September 17, 2008 5:26 PM
>To: Stut; mysql@lists.mysql.com
>Subject: Re: Finding gaps
>
> >Is there any elegant way of finding the gaps?
>
>You'll find some ideas under (and near) "Find missing numbers in a
>sequence" at http://www.artfulsoftware.com/infotree/queries.php.
>
>PB
>
>-----
>
>Stut wrote:
>> On 17 Sep 2008, at 22:12, Jerry Schwartz wrote:
>>> I have records that should be sequentially (not auto-increment)
>>> numbered,
>>> but there are gaps. Is there any elegant way of finding the gaps?
>>
>> Why do they need to be sequential? When this requirement comes up it's
>> usually for illogical reasons.
>>
>> -Stut
>>
>> ----------------------------------------------------------------------
>--
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - http://www.avg.com
>> Version: 8.0.169 / Virus Database: 270.6.21/1677 - Release Date:
>9/17/2008 5:07 PM
>>
>>




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to