Avatar billede stkol76 Novice
07. december 2009 - 23:35 Der er 8 kommentarer og
1 løsning

SQL sætning til at finde første ikke taget nummer imellem 2 tal

Hejsa,

Jeg har en tabel med en masse IP adresser, hvor f.eks 10.2.3.1 til 10.2.3.22 samt 10.2.3.53 til 10.2.3.58 er taget. I en anden tabel har jeg to culumns, én hvor der er ét laveste nummer (f.eks 1) og ét højeste nummer (f.eks 254). Derud over har jeg en tabel der udfra hvilket segment der er valgt angiver nummeret på subnet som den skal tages fra (f.eks 10.2.(6).x - subnet i parantes).

Jeg skal ud fra ovenstående have lavet en SQL sætning som kan finde den næste ledige IP adresse i den subnet som bliver specificeret. Jeg skal lave denne sætning i ASP Classic.

Er der en der kan hjælpe mig med dette? :-)

/Stig :-)
Avatar billede janus_007 Nybegynder
08. december 2009 - 21:24 #1
Hvilken version kører du med?
Avatar billede stkol76 Novice
09. december 2009 - 09:50 #2
Hej Janus,

ASP er version 3.0 og MS SQL er 2008, kørende på Windows Server 2008 R2 Enterprise :-)
Avatar billede janus_007 Nybegynder
09. december 2009 - 22:01 #3
Det er jo luksus :)

Så ville jeg lave det med en Except, altså lave en tabel med alle tal fra 1 til 255 og så

select f1, 2, f3, f4 from TableWithAll
except
select f1, f2, f3, f4 from TableReserved


Tror du ikke det kunne lade sig gøre?
Avatar billede stkol76 Novice
09. december 2009 - 22:51 #4
Hej Janus,

Ja det er dejligt grej ;-)

Jeg var ikke klar over at man kunne lave en exept, helt Perfekt!

Jeg kan godt se at det ville kunne lade sig gøre med den select du skriver! men jeg kan også se et lille problem hvis IP_start er sat til 20 og IP_end er sat til 120, så vil den tabel hvor der bliver skrevet fra 1 til 254 jo ikke holde sig inden for IP_start og IP_end. Forudsat at vi får dette løst, hvordan sikrer vi os så at den tager den første ledige, og ikke den sidste ledige, eller for den sags skyld et tilfældigt? Skal vi bruge en sort by til dette eller vil der være en bedre måde at gøre dette på?

/Stig :-)
Avatar billede stkol76 Novice
09. december 2009 - 22:55 #5
Glemte lige..

Når jeg skriver IP adressen ned i TableReserved, bliver den fulde IP skrevet som f.eks 10.2.4.20, og der bliver jo så nød til at blive blive "filtreret" 10.2.4. fra så SQL sætningen kun ser 20. Hvordan kan dette klares??

/Stig :-)
Avatar billede stkol76 Novice
26. januar 2010 - 10:31 #6
Hej Janus,

Tak for din hjælp, jeg fik løst det med hjælp fra dit input, vil du ikke smide et svar? :-)
Avatar billede stkol76 Novice
25. marts 2010 - 11:56 #7
Hej Janus

Vil du smide et svar så jeg kan lukke denne? :-)
Avatar billede stkol76 Novice
08. april 2010 - 14:39 #8
Hej Janus

Vil du ikke godt smide et svar så jeg kan få lukket denne? :-) Hvis ikke jeg hører fra dig inden 1 uge så lukker jeg den selv!
Avatar billede stkol76 Novice
04. oktober 2010 - 10:35 #9
Hej Janus,

Eftersom du ikke i 6 måneder har reageret på min anmodning om et svar så jeg kunne give dig point, har jeg besluttet at svare selv! Hvis du skulle mene at vill have point så kan jeg oprette et nyt spørgsmål til formålet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester