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?
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> 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
Lücken in fortlaufender Nummerierung finden
Libre Grüße
AHo.
LibreOffice 7.1 | Windows 10
AHo.
LibreOffice 7.1 | Windows 10
Re: Lücken in fortlaufender Nummerierung finden
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
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
Re: Lücken in fortlaufender Nummerierung finden
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))
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
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 ❤️