Abfrage von Werten abhängig von Datum

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

wagnbeu0
**
Beiträge: 47
Registriert: Fr, 23.04.2010 10:56

Abfrage von Werten abhängig von Datum

Beitrag von wagnbeu0 »

Hallo, mal wieder beschäftigt mich das Datum in der Datenbank. Ich habe zwei Tabellen:

Tabelle Planung:
Feld Datum, Feldtyp Datum
weitere Felder ...

Tabelle Ort:
Feld Ort, Charakterfeld
Zeit_2010: Uhrzeit
Zeit_2011: Uhrzeit
... weitere Felder

So, ich will nun folgendes erreichen:
Bislang klappt die Abfrage auf beide Tabellen wunderbar. Abhängig vom Ort liefert er mir dazu die richtige Zeit, wann die Veranstaltung stattfindet. Jetzt habe ich aber festgestellt, dass sich der Zeitpunkt der Veranstaltung regelmäßig im Jahresrhythmus verändert.
Wenn ich einen Select auf das Feld Planung mache, soll er mir, falls das Datum im Jahr 2010 ist, die Uhrzeit aus dem Feld "Zeit_2010" aus der Tabelle Ort geben. Falls das Datum im Jahr 2011 ist, soll er die Uhrzeit aus dem Feld "Zeit_2011" aus der Tabelle Ort geben. Hintergrund ist, dass pro Ort sich die Zeiten im Jahresrythmus verändern.

Wie bekomme ich das am besten hin?
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Abfrage von Werten abhängig von Datum

Beitrag von Barlee »

Hallo,

wenn ich Dich richtig verstehe, möchtest Du ein Abfrageergebnis der Planungstabelle -YEAR(Datum)- als Spaltenreferenz für die Tabelle Ort nehmen?
Höchstwahrscheinlich wird das nicht funktionieren.
Vielmehr offenbart sich aus meiner Sicht eine Schwäche in Deinem DB Design. Anstatt die Daten für die verschiedenen Jahre (Zeit_2010, Zeit_2011) in separaten Spalten zu halten, solltest Du über eine zeilenweise Eingabe nachdenken. Darüber ließe sich dann sauber nach den erforderlichen Daten in der Tabelle Ort suchen.
Dein jetziger Tabellenaufbau verlangt immer nach Änderungen in der Tabellenstuktur (Hinzufügen neuer Spalten), wenn Du Daten über das Jahr 2011 hinaus erfassen möchtest.

Ich rate Dir, erstmal hier anzusetzen. Normalisierung usw. solltest Du beachten.

Gruß Barlee
wagnbeu0
**
Beiträge: 47
Registriert: Fr, 23.04.2010 10:56

Re: Abfrage von Werten abhängig von Datum

Beitrag von wagnbeu0 »

Hm, was genau meinst du damit?
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Abfrage von Werten abhängig von Datum

Beitrag von Barlee »

Hm, was genau verstehst Du nicht?
wagnbeu0
**
Beiträge: 47
Registriert: Fr, 23.04.2010 10:56

Re: Abfrage von Werten abhängig von Datum

Beitrag von wagnbeu0 »

was meinst du mit zeilenweiser EIngabe?
wenn ich pro Veranstaltungsort eine Zeile habe, sich aber pro Jahr die Uhrzeit ändert, soll ich dann die Uhrzeit wieder ein eine extra Tabelle ausgliedern?
Ich verstehe das nicht ganz, wie sollte ich das denn aufsetzen, wenn sich pro Veranstaltungsort außer der Zeit nicht ändert? Die Zeit ändert sich fest im Jahresrythmus. Adresse etc. bleibt alles gleich.
wagnbeu0
**
Beiträge: 47
Registriert: Fr, 23.04.2010 10:56

SOLVED: Re: Abfrage von Werten abhängig von Datum

Beitrag von wagnbeu0 »

So, das geeht durchaus, mein Oraccle hat mich mal wieder mittels CASE auf die richtige Richtung gebracht: CASE WHEN

Code: Alles auswählen

select "A"."Datum","A"."Ort",CASE WHEN(YEAR("A"."Datum"))=2010 then "B"."Uhrzeit_2010" else "B"."Uhrzeit_2011" END as "Uhrzeit"
from "Planung" as "A","Ort" as "B" where "A"."Ort"="B"."Ort";

Muss ich jetzt zwar die Abfrage eigentlich jedes Jahr anpassen, aber damit kann ich leben. Eine einfachere Lösung ist mir leider wwirklich nicht eingefallen...
Antworten