Hej! Din fråga ger 2 hoss mig med de poster du angav. MEn jag skulle utfört det med en join. Vilket är mer effektivt än en subquery. Varför är du intresserad av det? Känns som om att det kommer att gå mer prestanda Tack för hjälpen det fungerade utmärkt...... jag får kanske gå en kurs i SQL och lära mig mer om det.Hämta ledigt nummer
Finns det någon som är haj på det här med SQL som kan hjälpa mig?
Jag ska hämta närmast lediga nummer som är större än det värde jag valt
Har prövat med:
<code>
SELECT MIN(Artnr)+1 AS NYTTNR FROM ARTIKELREGISTER AR WHERE(Artnr >= " & valnr & " ) AND ( NOT EXISTS( SELECT 1 FROM ARTIKELREGISTER WHERE Artnr = AR.Artnr + 1))
</code>
men utan framgång. Om jag har ett antal poster t.ex 1,10000,10001,10002 så får jag 10003 som resultat om jag väljer 1 som lägsta nummer i stället för 2 som är det närmasre lediga nummer över 1Sv: Hämta ledigt nummer
<code>
strSQL = "SELECT MIN(Main.Artnr) + 1 AS NYTTNR" & vbCrLf & _
"FROM ARTIKELREGISTER Main LEFT JOIN" & vbCrLf & _
" ARTIKELREGISTER Sub ON Main.Artnr + 1 = Sub.Artnr" & vbCrLf & _
"WHERE (Main.Artnr >= " & valnr & ") AND (Sub.Artnr Is Null)"
</code>
Man bör inte fylla i tomma nummer. Utan fortsätta på serien. Varför vill du fylla tomma nummer?Sv: Hämta ledigt nummer
till att söka ett ledigt nummer än att utföra de kritiska operationerna...
Enklast är att använda en automatisk räknare och bara fortsätta på den. Om en post
tas bort, bör man nästan ha spårbarheten så att den ligger kvar men är inaktiv.
/EmmaSv: Hämta ledigt nummer
Varför jag inte använder en nummerserie!!!!
Tabellen är för uthyrning och försäljning av filmer. Vanliga videoband vill de ha med ett artikelnummer som ligger från 10000 och uppåt och DVD från 1 och uppåt. En ny artikel kan få samma nummer som en tidigare som har utgått och blivit borttagen. Därför kan jag inte använda en nummerserie vilket klart kunde ha varit bättre, men nu är det som det är.
//Krister