Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Laufende Nummer per SQL Update möglich? (https://www.delphipraxis.net/213115-laufende-nummer-per-sql-update-moeglich.html)

HCB 29. Mai 2023 11:44

Datenbank: Access • Version: 2003 • Zugriff über: SQL / Delphi FireDac

Laufende Nummer per SQL Update möglich?
 
Hallo, ich versuche die Datensätze in einer Stückliste zu aktualisieren z.B wenn ein Datensatz gelöscht wurde.

Beispiel:
Datensatz 1 StckListLfdNr 0
Datensatz 2 StckListLfdNr 1
Datensatz 3 StckListLfdNr 2 usw.

wenn ich jetzt den Datensatz 2 lösche sollte aktualisiert werden, damit es dann so aussieht:

Datensatz 1 StckListLfdNr 0
Datensatz 3 StckListLfdNr 1

Irgendwie funktioniert es hiermit nicht:
update StckList set StckListLfdNr = StckListLfdNr-1 where StckListNr ='1013030';

Wenn jemand mir auf die Sprünge helfen kann wäre ich sehr dankbar, da ich blutiger Anfänger bin.

LG Harry

Uwe Raabe 29. Mai 2023 15:09

AW: Laufende Nummer per SQL Update möglich?
 
Dein Code verändert auch die 0. Versuch es mal hiermit.
SQL-Code:
update StckList set StckListLfdNr = StckListLfdNr-1 where StckListNr ='1013030' AND StckListLfdNr > 2;

HCB 30. Mai 2023 15:12

AW: Laufende Nummer per SQL Update möglich?
 
Hallo Uwe,
mit dem SQL script erhalten alle Artikel den gleichen wert. Es wird nicht durchnummeriert.

LG Harry

Uwe Raabe 30. Mai 2023 15:24

AW: Laufende Nummer per SQL Update möglich?
 
Es wird damit auch nicht durchnummeriert, sondern die nur die Lücke geschlossen. Wenn die Nummerierung vorher nicht stimmt, dann nach dem Script natürlich auch nicht.

Generell wäre ein Beispiel zum Reproduzieren empfehlenswert.

HCB 30. Mai 2023 15:34

AW: Laufende Nummer per SQL Update möglich?
 
Kann man denn generell einfach z.B. 10 Datensätze per Access-SQL durchnummerieren lassen?
Wenn ja, wie würde das SQL aussehen?

LG Harry

Phoenix 30. Mai 2023 15:43

AW: Laufende Nummer per SQL Update möglich?
 
Du brauchst ein Kriterium nachdem Du die Datensätze sortieren kannst.
Und dann kannst Du ROW_NUMBER() verwenden um die Zeilennummer der Sortierten Liste (innerhalb des Queries) zu erhalten und damit dann die Laufende Nummer neu zu befüllen.

himitsu 30. Mai 2023 17:09

AW: Laufende Nummer per SQL Update möglich?
 
[deleted]

TigerLilly 30. Mai 2023 17:50

AW: Laufende Nummer per SQL Update möglich?
 
Zitat:

Zitat von HCB (Beitrag 1522899)
Kann man denn generell einfach z.B. 10 Datensätze per Access-SQL durchnummerieren lassen?
Wenn ja, wie würde das SQL aussehen?
LG Harry

Google spuckt dazu zB dieses aus:
https://www.huegemann-informatik.de/...ccess-tabellen

Bzw DCount
https://support.microsoft.com/de-de/...a-11a64acbf3d3

Hilft das?

blawen 30. Mai 2023 18:03

AW: Laufende Nummer per SQL Update möglich?
 
Wenn ich es richtig interpretiere, geht es um eine Stückliste, bei welcher die jeweils nächste freie Positionsnummer vergeben, bzw. die Sortierung angepasst werden soll.

Meistens sind doch Positionsnummern auch noch mit anderen Dokumenten/Zeichnungen verknüpft.
Spielt dies in Deinem Fall keine Rolle?

jobo 30. Mai 2023 21:15

AW: Laufende Nummer per SQL Update möglich?
 
Als reines SQL suchst Du nach einem korrelierten Update (correlated Update).

Hier ist soetwas für Access aufgeführt(Englisch).
https://stackoverflow.com/questions/...uery-in-access

..UPDATE VendorRegKeys
INNER JOIN Users..
In Deinem Fall wäre es ungefähr ein Selfjoin. Du brauchst ein Select, das alle die Datensätze wiedergibt, die Du updaten möchtest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz