BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Lücken in fortlaufender Nummerierung finden

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Benutzeravatar
AHo
Beiträge: 6
Registriert: Mo 28. Dez 2020, 14:15
Wohnort: Düsseldorf

Lücken in fortlaufender Nummerierung finden

Beitrag von AHo » Mo 8. Feb 2021, 21:47

Hallo allerseits!
Ich habe hier eine kleine relationale Datenbank mit zwei Tabellen: In der einen Tabelle sind meine Schallplatten, in der anderen die Titel auf diesen Schallplatten gelistet. Die Schallplatten sind von 1 bis 999 händisch nummeriert; die Nummer darf sich nicht ändern. Ich habe aber weniger als 999 Schallplatten, weil einige im Laufe der Jahre ausgesondert wurden. Diese etwa hundert habe ich auch aus der Datenbank gelöscht. Nun will ich die fortlaufende Nummerierung bei Neukauf von Platten erst einmal nicht bei 1.000 fortsetzen, sondern die Lücken in der bisherigen Nummerierung, also die Nummern der ausgesonderten Platten, finden und wieder verwenden.
Wie finde ich die Lücken am einfachsten?
Klar - ich könnte die Tabelle nach Calc schubsen und da die Differenz zwischen aktueller und vorhergehender Zeile ausrechnen lassen und bei Werten größer 1 sehe ich dann die Lücke. Aber ich würde das gerne dynamisch in Base tun. Geht das?
Libre Grüße
AHo.
LibreOffice 7.1 | Windows 10

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Lücken in fortlaufender Nummerierung finden

Beitrag von Wanderer » Di 9. Feb 2021, 11:03

Hallo,

die übliche Lösung ist wohl ein LEFT JOIN mit einer Tabelle, die alle möglichen Ids - bei Dur 1 bis 1000 enthält.
Manch Datenbanken bieten dafür z.B. SEQUENCE als Struktur an.

Beispielabfrage:
http://www.donkarl.com/?FAQ3.16

Mfg, Jörn

PS: Die Frage habe ich vor nicht allzu langer Zeit schon mal gelesen....
Edit: https://de.openoffice.info/viewtopic.ph ... 61#p291761
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: Lücken in fortlaufender Nummerierung finden

Beitrag von gogo » Di 9. Feb 2021, 17:57

Code: Alles auswählen

select * from t_platten p where not exists (select 1 from t_platten e where p.ID_PLATTE = (e.ID_PLATTE - 1))
listet alle Löcher auf:
Angezeigt wird immer der Datensatz der VOR einem Loch kommt. (ID 565 wird angezeigt ==> ID 566 FEHLT)
Wenn mehrere Datensätze hintereinander fehlen wird auch nur der vor dem Loch angezeigt...:
Wenn 5 und 6 fehlen, dann wird der 4er angezeigt.
Nach Neuerfassen des 5ers wird dann der 5er angezeigt, da der 6er noch fehlt...dem
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten