Joe Rojas
JRojas at tnco-inc.com
Thu Nov 4 13:33:17 CST 2004
Wow! Thanks Gustav! Great SQL!
JR
-----Original Message-----
From: Gustav Brock [mailto:gustav at cactus.dk]
Sent: Thursday, November 04, 2004 4:52 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Checking for "holes" in a sequence using SQL
Hi Joe
> If I have data similar to:
> JOE001
> JOE002
> JOE003
> JOE005
> JOE006
> Is there a way, using just SQL, to return the next available number in the
> sequence, JOE004, and be flexible enough to return JOE007 if JOE004 had
> already existed?
> Or do I have to use code to iterate through the records to check for
> "holes"?
Except for the indication of some malfunctioning during the design
state as already pointed out by others, there is:
<SQL>
SELECT TOP 1
TextID,
Left(TextID, Len(TextID)-3) &
Right(String(3,"0") & Right(TextID,3)+1,3) AS NextID
FROM
tblID
WHERE
(Nz(
(Select Top 1
Val(Right(TextID,3))
From
tblID As T
Where
T.TextID > tblID.TextID)
-Val(Right([TextID],3)),
2)>1)
ORDER BY
tblID.TextID;
</SQL>
All the "3"s count for the length of the numeric right part of the
textid.
Note the "magic 2" in Nz() which cares for the return of the last
textid if no "holes" exist.
/gustav
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
This electronic transmission is strictly confidential to TNCO, Inc. and
intended solely for the addressee. It may contain information which is
covered by legal, professional, or other privileges. If you are not the
intended addressee, or someone authorized by the intended addressee to
receive transmissions on behalf of the addressee, you must not retain,
disclose in any form, copy, or take any action in reliance on this
transmission. If you have received this transmission in error, please notify
the sender as soon as possible and destroy this message. While TNCO, Inc.
uses virus protection, the recipient should check this email and any
attachments for the presence of viruses. TNCO, Inc. accepts no liability for
any damage caused by any virus transmitted by this email.