🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

GELÖST: Datensätze älter als 1 Jahr finden

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
OfficeUser
Beiträge: 12
Registriert: Sa 28. Nov 2015, 06:29

GELÖST: Datensätze älter als 1 Jahr finden

Beitrag von OfficeUser » So 18. Aug 2024, 14:02

Hallo Community,

nachdem ich lange abwesend war, beschäftige ich mich mal wieder mit Base. Dabei scheint ein ganz simples Problem aufzutreten, für welches ich einfach keine Lösung finde.

Ich habe in einer Tabelle das Datum gespeichert an welchem der Datensatz angelegt wurde. Jetzt möchte ich aus dieser Tabelle, alle Datensätze über eine Abfrage finden, wo das Datum schon mehr als 1 Jahr her ist.

Beispiel:

Code: Alles auswählen

SELECT "Datum", "WeitereDaten"
FROM "MeineTabelle"
WHERE "Datum" <= ??? (Datum_vor_einem_Jahr)
Trotz intensiver Suche, auch im Handbuch, habe ich dazu nichts gefunden. Über ein Formular und mit Filter-Tabelle habe ich etwas ähnliches, mit Datum zwischen (BETWEEN) schon realisiert. Hier soll die Abfrage jedoch ohne vorherige Eingabe des Datums als Parameter oder in einem Formular realisiert werden.

Ich bin für jeden Tipp dankbar.

Lieben Gruß
Klaus
Zuletzt geändert von OfficeUser am So 18. Aug 2024, 19:58, insgesamt 1-mal geändert.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datensätze älter als 1 Jahr finden

Beitrag von RobertG » So 18. Aug 2024, 16:12

Hast Du denn erst einmal das Ganze mit der direkten Eingabe des Datums versucht ('2023-08-18')?

Und wenn Du das dann hast kannst Du ja mit CURRENT_DATE und eine Umwandlung des Jahresanteils des Datums das Datum von vor einem Jahr laufend ermitteln.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

OfficeUser
Beiträge: 12
Registriert: Sa 28. Nov 2015, 06:29

Re: Datensätze älter als 1 Jahr finden

Beitrag von OfficeUser » So 18. Aug 2024, 16:56

Also mit der Eingabe eines Datums funktioniert es einwandfrei, jedoch soll es hier keine Parameter-Abfrage werden.

Genau bei der Berechnung mit "CURRENT_DATE" habe ich die Probleme. Berechnung wie in Calc (CURRENT_DATE - 366) funktioniert nicht, auch "DATE_SUB()" erzeugt in Base Fehlermeldungen.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datensätze älter als 1 Jahr finden

Beitrag von RobertG » So 18. Aug 2024, 19:17

Welche Befehle da greifen hängt mit der eingesetzten Datenbank zusammen. Die interne HSQLDB ist so alt, dass sie Funktionen wie DATEADD nicht kennt.

CURRENT_DATE → aktuelles Datum
EXTRACT(YEAR FROM CURRENT_DATE) → Jahr des aktuellen Datums
EXTRACT(YEAR FROM CURRENT_DATE) - 1 → letztes Jahr

Code: Alles auswählen

(EXTRACT(YEAR FROM CURRENT_DATE) - 1)||'-'||RIGHT('0'||EXTRACT(MONTH FROM CURRENT_DATE),2)||'-'||RIGHT('0'||EXTRACT(DAY FROM CURRENT_DATE),2)
müsste jetzt das Datum von vor einem Jahr ergeben.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

OfficeUser
Beiträge: 12
Registriert: Sa 28. Nov 2015, 06:29

Re: Datensätze älter als 1 Jahr finden

Beitrag von OfficeUser » So 18. Aug 2024, 19:58

Hallo Robert,

Danke für die Antwort, welche in der Tat die Lösung darstellt. Ich hätte nicht gedacht, dass Datums-Berechnungen in der internen HSQLDB so aufwendig sind. :lol:

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: GELÖST: Datensätze älter als 1 Jahr finden

Beitrag von RobertG » Mo 19. Aug 2024, 08:43

In Firebird wäre das mit
CURRENT_DATE - 365
auf die schnelle Tour ohne Berücksichtigung von Schaltjahren gegangen. Sonst über
DATEADD(year, -1, CURRENT_DATE)
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten