INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

MIN-Abfrage bei SQL-Zeilen-Update



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

02.02.2007, 16:05
Beitrag #1

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
MIN-Abfrage bei SQL-Zeilen-Update
Hallo,

dies hat zwar nicht direkt was mit LabVIEW zu tun, ich hoffe aber, daß es unter Euch jemanden gibt, der mir weiterhelfen kann, weil ja auch ein paar Leutchen das SQL-Toolkit nutzen.

Meine Tabelle besteht aus 3 Spalten: eine mit der Zeilen-ID (Autoincrement), eine mit einem String (Seriennummer) und eine mit einer zweiten ID (Nummer).
Spalte 2 mit dem String soll mittels INSERT gefüllt werden. Die Zeilen-IDs in der ersten Spalte wird automatisch erzeugt, die letzte Spalte bleibt vorerst leer.

Im weiteren Verlauf soll von mehreren Rechnern aus die erste freie Seriennummer abgerufen und die zweite ID in die letzte Spalte getragen werden. Jede Seriennummer darf nur einmal vergeben werden! D.h. ich möchte in einem Zugriff (also ein SQL) die letzte Spalte updaten und die Seriennummer direkt oder zumindest die Zeilen-ID zurückerhalten.

Mein SQL sähe dann etwa so aus "UPDATE TabName SET Nummer = ... WHERE Nummer IS NULL AND ZeilenID = MIN(ZeilenID). Geht aber nicht, da bekomm ich die Fehlermeldung: "]Invalid use of group function".
Wenn ich diese WHERE-Clause bei SELECT in Verbindung mit "Having" verwende (SELECT * FROM TabName where Nummer is NULL having ZeilenID = MIN(ZeilenID)) erhalte ich die gewünschte Zeile. Having ist aber allerdings auf "Update" nicht anwendbar.

Die Überlegung erst über die select-Anweisung die Zeilen-ID zu erhalten und dann die Nummer in die letzte Spalte dieser Zeile nachzutragen, scheidet aus, weil ja in der Zwischenzeit die Anfrage auf die erste freie Seriennummer eines anderen PCs erfolgen kann. Somit würden beide Stellen mit der gleichen Seriennummer arbeiten, was aber auszuschließen ist.

Hat jemand eine Idee, dieses Problem auf die Art zu lösen oder einen anderen Lösungsvorschlag?

P.S.: der DB-Server, auf den zugegriffen werden muß läuft noch mit SQL4, d.h. ich kann noch keine stored procedures machen.
Die Nummer der letzten Spalte wird auch nur einmal vergeben. Es wäre also möglich, diese Apalte der erste Zeile, bei der noch keine Nummer eingetragen ist, mit der Nummer zu füllen und anschließend die Seriennummer anhand dieser Nummer zu suchen. Wie erhalte ich aber die erste freie Zeile in Verbindung mit der Update-Anweisung?

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
MIN-Abfrage bei SQL-Zeilen-Update - s200rs - 02.02.2007 16:05
MIN-Abfrage bei SQL-Zeilen-Update - Y-P - 02.02.2007, 19:50

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VI begrenzt gelesene CSV Datei auf 128 Zeilen rackpack 1 2.677 22.04.2022 10:49
Letzter Beitrag: GerdW
  Leere Zeilen aus Array löschen MN_ 7 6.397 28.05.2021 13:17
Letzter Beitrag: Lucki
  SQlite Update syntax Hubert R. 4 5.129 09.09.2020 13:46
Letzter Beitrag: Martin.Henz
  Zeilen einer .txt Datei zählen Alexa 10 15.542 18.08.2012 09:46
Letzter Beitrag: Y-P
  Zeilen aus Listenfeld ausblenden Lucky 1 6.825 12.09.2010 12:02
Letzter Beitrag: Matze
  Abfrage ob Neustart Capricum 3 5.500 26.07.2010 10:00
Letzter Beitrag: GerdW

Gehe zu: