Datenbankfelder Automatisch füllen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Datenbankfelder Automatisch füllen

Re: Datenbankfelder Automatisch füllen

von NewWave » Mi, 26.08.2009 14:35

Hi,

danke für den CASE WENN Tipp.

Edit: Hier nun meine Lösung:

Code: Alles auswählen

SELECT "Dletzt", 
CASE 
	When DAYNAME(CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt") || '-' || DAY("Dletzt")+365.25, DATE)) = 'Saturday' 
		Then CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt") || '-' || DAY("Dletzt")+367.25, DATE)
	When DAYNAME(CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt") || '-' || DAY("Dletzt")+365.25, DATE)) = 'Sunday'
		Then CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt") || '-' || DAY("Dletzt")+366.25, DATE)
	ELSE CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt") || '-' || DAY("Dletzt")+365.25, DATE)
END  as "Dneu"

FROM "Begehungen"
Für Tipps zur Vereinfachung bin ich dankbar, aber erstmal froh das ich es nach vielem Suchen und Testen hinbekommen habe.

MfG

Re: Datenbankfelder Automatisch füllen

von komma4 » Mi, 26.08.2009 09:42

Wenn das zweite Datum immer berechnet wird, dann ist es im Sinne der Normalisierung völlig korrekt den Wert nicht auch noch zu speichern.


Verstehe ich Dich richtig, dass dieses Datum dann nicht auf's Wochenende fallen soll?

So etwas erreichst Du dann durch Kombination eines CASE WHEN Konstrukts und der bei HSQLDB eingebauten DAYNAME-Funktion - Beispiele für's Erstere habe ich hier schon gesehen.

Viel Erfolg!


Link zur HSQLDB-Dokumentation

Re: Datenbankfelder Automatisch füllen

von NewWave » Mi, 26.08.2009 09:02

Hi,

das erste Datum soll ja die Grundlage der Berechnung darstellen. Nach etwas such hier im Forum habe ich mich dann entschieden es beim Anzeigen des Datensatzes
durch einen SQL - Befehl berechnen zu lassen. Es sollte immer genau ein Jahr später sein. Jedoch ist noch die Frage inwiefern es möglich ist, dass das ermittelte Datum kein Samstag oder Sonntag ist.

Code: Alles auswählen

SELECT "Dletzt",
CONVERT( YEAR("Dletzt") || '-' || MONTH("Dletzt")+12 || '-' || DAY("Dletzt"), DATE) AS "Dneu"
FROM "Tabelle"
OOo Version 3.1.0.
Datenbank ist in OOo Base

MfG

Wave

Re: Datenbankfelder Automatisch füllen

von komma4 » Di, 25.08.2009 14:44

Willkommen im Forum.

Warum erwähnst Du das erste Datum?
Nach welchen Regeln soll das zweite Datum berechnet werden?

Welche Datenbank-engine? Welche OOo Version?

Datenbankfelder Automatisch füllen

von NewWave » Di, 25.08.2009 11:10

Hi,

ich habe in Base ein Tabelle erstellt in der ein Datum eingetragen werden soll und das zweite Datum soll dann automatisch Berechnet werden und eingetragen.
Wollte dies über ein Forumular realisieren, finde aber nicht passendes dazu. Makro ist im Moment für mich noch Bahnhof :D

MfG

Wave

Nach oben