Einzelnen Beitrag anzeigen

Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#1

Und gleich nochmal MAX(), diesmal mit MSSQL.

  Alt 16. Jan 2006, 20:00
Datenbank: MSDE • Zugriff über: ADO
Guten Abend zusammen !

Es geht schon wieder um Rechnungsnummern. Ja, gesucht hab ich genug!

Vorab: Was ist die bessere (=schnellere) Formulierung ?
Select Top 1 Nummer from Nummern where Datum is null order by Nummer oder
Select MAX(Nummer) from Nummern where Datum is null Warum warum liefert diese Formulierung einen Syntaxfehler ?
SET @Nummer = Select MAX(Nummer) as MaxNr FROM Nummern Wie krieg ich die grösste Nummer in eine lokale Variable ?

Gibt es im SQL sowas wie einen "Aktuellen Datensatz" ? Bei Triggern gibts ja DELETED und INSERTED.
In einer professionellen Warenwirtschaft hab ich auch herumgestöbert.
Da wird ein Cursor deklariert und mit Fetch werden die Feldwerte in lokale Variablen geholt.
Kurzer Ausschnitt:
SQL-Code:
DECLARE cAdressen CURSOR FOR SELECT Mandant,Adresse,Telefon,Mobilfunk FROM Inserted
OPEN cAdressen
IF @@Cursor_Rows<>0
  BEGIN
    FETCH NEXT FROM cAdressen INTO @Mandant,@Adresse,@Telefon,@Mobilfunk
    WHILE (@@FETCH_STATUS = 0)
    BEGIN
      ....
    END
  END
CLOSE cAdressen
DEALLOCATE cAdressen
Geht das nicht einfacher ?

Viele Fragen an die SQL-Gurus. THX im Vorraus !
Otto
  Mit Zitat antworten Zitat