MSSQL... Select mit mehreren Bedingungen will nicht so recht...

Diskutiere MSSQL... Select mit mehreren Bedingungen will nicht so recht... im Programmierung Forum im Bereich Software Forum; Ich habe vor, ein Statement zu schreiben, welches folgendes macht: Suche mir die höchte Nummer, welche mit 8 beginnt und 4 Stellen hat und zähle...
D

Deebee

Threadstarter
Mitglied seit
10.05.2007
Beiträge
188
Alter
37
Ich habe vor, ein Statement zu schreiben, welches folgendes macht:
Suche mir die höchte Nummer, welche mit 8 beginnt und 4 Stellen hat und zähle +1. Wenn es eine 4stellige Nummer, die mit 8 beginnt nicht gibt, dann lege den Nummernkreis, also die 8000 an.
Das ganze darf aber nur bis höchstens 8999 gehen, dann ist schluss. Und an dieser letzten Bedingung hänge ich jetzt.
Bis jetzt habe ich folgendes:

Code:
Select isnull(MAX (itemcode)+1,8000) from OITM where ItemCode like '8%' and LEN(itemcode)=4
So, wie krieg ich hier nun die Bedingung hin, das bei 8999 schluss ist und mit diesem Statement keine 9000 angelegt werden darf?
 
L

LauxAimoEwa

Mitglied seit
04.12.2006
Beiträge
2.003
Wie wär's damit:

Select MAX(itemcode)+1 from OITM where ItemCode between 8000 and 8998
 
D

Deebee

Threadstarter
Mitglied seit
10.05.2007
Beiträge
188
Alter
37
Das ist super und funktioniert auch einwandfrei.
Allerdings hatte ich einen Denkfehler!
Denn somit ist die höchste Zahl, die generiert werden kann, die 8999. Das ist auch richtig!
Sagen wir aber mal, der Nummernkrei ist schon komplett voll und alle Zahlen von 8000-8999 existieren schon... Auch dann würde immer die 8999 ausgespuckt werden, denn das wäre ja die höchste Zahl, in diesem Rahmen. Dabei ist egal, ob man mit between, <, not in, oder so arbeitet. Also müsste man eigentlich prüfen. So nachdem Motto, gibt es meine generierte Nummer schon? -> Wenn nein, dann anlegen, wenn ja -> andere freie Nummer innerhalb des Nummernkreises, ist der komplette nummernkreis schon vergeben -> brich ab

Puh...
 
A

AlienJoker

Gast
Das wirst du in zwei Schritten tun dürfen.
1. "Select MAX(itemcode)+1 from OITM where ItemCode between 7999 and 8999"

2a. Wenn Max(x)=8999 > tu nix
2b. wenn max(x)=nothing "insert into... itemcode=8000)"
2c. sonst "insert into... itemcode=(max(x)+1)"

Das legt deinen Nummernkreis an, bei "nix gefunden" (2b)
Bricht ab, wenn er komplett ist (2a)
Addiert eins drauf, wenn der Kreis unvollständig ist (2c)
 
Thema:

MSSQL... Select mit mehreren Bedingungen will nicht so recht...

MSSQL... Select mit mehreren Bedingungen will nicht so recht... - Ähnliche Themen

  • MSSQL 2005 Workgroup Edition<>SQL Server 2008 Express

    MSSQL 2005 Workgroup Edition<>SQL Server 2008 Express: Hallo, Ich habe derzeit auf meinem Win-Server 2008 --> SQL Server 2008 Express laufen(Installiert). Möchte jetzt parallel MSSQL 2005 Workgroup...
  • Mit PHP auf MSSQL zugreifen

    Mit PHP auf MSSQL zugreifen: Ich verzweifel gerade daran, die MSSQL Erweiterung im PHP zu aktivieren. In der PHP.ini ist die Zeile "extension=php_mssql.dll" aktiv. Die...
  • GELÖST MSSQL 2005 ständig "Starting up database"

    GELÖST MSSQL 2005 ständig "Starting up database": Hallo, ich weiß echt nicht mehr weiter! :blink Bei mir läuft der MSSQL Server 2005 auf Windows 2003 Server. Einige meiner Datenbanken werden...
  • GELÖST MSSQL Datenbank kopieren

    GELÖST MSSQL Datenbank kopieren: Hallo zusammen, eigentlich will ich "nur" eine Datenbank kopieren. Auf dem gleichen Server in der gleichen Instanz. Nur der Name ändert sich...
  • MSSQL Netzwerkzugriff

    MSSQL Netzwerkzugriff: hallo zusammen Folgende Problem. Ich habe eine Anwendung installiert, welche mit MSSQL zusammenarbeitet. Local habe ich somit die Anwendung und...
  • Ähnliche Themen

    • MSSQL 2005 Workgroup Edition<>SQL Server 2008 Express

      MSSQL 2005 Workgroup Edition<>SQL Server 2008 Express: Hallo, Ich habe derzeit auf meinem Win-Server 2008 --> SQL Server 2008 Express laufen(Installiert). Möchte jetzt parallel MSSQL 2005 Workgroup...
    • Mit PHP auf MSSQL zugreifen

      Mit PHP auf MSSQL zugreifen: Ich verzweifel gerade daran, die MSSQL Erweiterung im PHP zu aktivieren. In der PHP.ini ist die Zeile "extension=php_mssql.dll" aktiv. Die...
    • GELÖST MSSQL 2005 ständig "Starting up database"

      GELÖST MSSQL 2005 ständig "Starting up database": Hallo, ich weiß echt nicht mehr weiter! :blink Bei mir läuft der MSSQL Server 2005 auf Windows 2003 Server. Einige meiner Datenbanken werden...
    • GELÖST MSSQL Datenbank kopieren

      GELÖST MSSQL Datenbank kopieren: Hallo zusammen, eigentlich will ich "nur" eine Datenbank kopieren. Auf dem gleichen Server in der gleichen Instanz. Nur der Name ändert sich...
    • MSSQL Netzwerkzugriff

      MSSQL Netzwerkzugriff: hallo zusammen Folgende Problem. Ich habe eine Anwendung installiert, welche mit MSSQL zusammenarbeitet. Local habe ich somit die Anwendung und...
    Oben