Seite 1 von 1
Dynamischer Feldzugriff in SQL
Verfasst: Sa 23. Jan 2021, 15:54
von WonneWasti
Hallo,
statisch funktioniert's. Wenn ich im Abfragedesigner das Feld "20" auswähle bekomme ich die Daten aus dem Feld "20" meiner Tabelle. Für jedes Jahr gibt es in der Tabelle ein Feld. Jährlich ändert sich die Jahreszahl, und der Eintrag in der Filtertabelle für das aktuelle Jahr so dass ich bei jedem Jahreswechsel die Abfrage manuell ändern müsste. Das würde ich gern dynamisch machen, also einen Feldnamen abhänngig vom Feldinhalt der Filtertabelle abfragen.
Das hier
SELECT "Pfl.Artik"."ArtikelID", "Pfl.Artik"."Art", "Pfl.Artik"."( SELECT "Filter"."Saison" FROM "Filter")" FROM "Filter", "Pfl.Artik"
funktioniert leider nicht.
Die innere SELECT - Anweisung soll zum Saisoneintrag der Filtertabelle aufgelöst werden.
Gibt's eine elegante Lösung ?
Gruß und Dank
Wasti
Re: Dynamischer Feldzugriff in SQL
Verfasst: Sa 23. Jan 2021, 16:59
von Pit Zyclade
Bin Anfänger...
Aber es sind zwei Tabellen "Pfl.Artik." und "Filter" ? Und wie sollen die verbunden oder was soll gleich sein? Welches Kriterium in Tabelle "Filter" soll denn gültig sein?
Re: Dynamischer Feldzugriff in SQL
Verfasst: Sa 23. Jan 2021, 17:27
von F3K Total
Moin,
Pit Zyclade hat geschrieben: ↑Sa 23. Jan 2021, 16:59
Für jedes Jahr gibt es in der Tabelle ein Feld.
Ich würde sagen, falscher Ansatz, statt für jedes Jahr eine neue Spalte, solltest du für jedes Jahr eine neue Zeile mit DATUM anlegen.
Dann ginge:
Code: Alles auswählen
SELECT "Pfl.Artik"."ArtikelID", "Pfl.Artik"."Art", "Pfl.Artik"."DATUM" FROM "Pfl.Artik" WHERE YEAR("DATUM") = ( SELECT "Filter"."Saison" FROM "Filter")
Gruß R
Re: Dynamischer Feldzugriff in SQL
Verfasst: So 24. Jan 2021, 09:30
von Pit Zyclade
F3K Total hat geschrieben: ↑Sa 23. Jan 2021, 17:27
Moin,
Pit Zyclade hat geschrieben: ↑Sa 23. Jan 2021, 16:59
Für jedes Jahr gibt es in der Tabelle ein Feld.
...
Nö, habe ich nicht geschrieben.
Re: Dynamischer Feldzugriff in SQL
Verfasst: So 24. Jan 2021, 16:38
von F3K Total
Pit Zyclade hat geschrieben: ↑So 24. Jan 2021, 09:30
Nö, habe ich nicht geschrieben.
Sorry, da habe ich mich wohl verklickt, das kam natürlich von:
WonneWasti hat geschrieben: ↑Sa 23. Jan 2021, 15:54
Für jedes Jahr gibt es in der Tabelle ein Feld.
Gruß R
Re: Dynamischer Feldzugriff in SQL
Verfasst: So 24. Jan 2021, 18:15
von WonneWasti
Ja, ich weiß es ist eine schwer verdauliche Frage.
Der "Normalfall" wäre jeden Artikel samt Vorratsmenge in jedem Jahr mit einer neuen Jahreszahl zu wiederholen. Dann mit dem Jahresfeld in der Filtertabelle verknüpfen. So kann ich im Formular auf die Vorratsmengen der Artikel zugreifen.
Die jährliche Wiederholung der Artikel wollte ich vermeiden und habe für jedes Jahr ein Feld angelegt in dem die Vorrätige Anzahl drin steht. ( z.B "300" bei Pelargonium peltatum "Imperator" im Feld "21") Nun würde ich gern in meinem (unter-)Formular die Vorratsmenge der Artikel abhängig vom Jahr das in der Filtertabelle steht anzeigen. Momentan darf ich nicht vergessen den Feldzugriff auf die Jahresmengenfelder im Formular manuell anzupassen. Das würde ich gern automatisieren.
Also den Inhalt von "Filter.Jahr" auslesen und als FELDBEZEICHNUNG für eine Abfrage verwenden.
Geht das überhaupt ? Per CAST oder PARSE ?
Gruß und Dank für die Aufmerksamkeit
WonneWasti
Re: Dynamischer Feldzugriff in SQL
Verfasst: Mo 25. Jan 2021, 16:58
von F3K Total
Moin,
geht meiner Meinung nach nicht in HSQLDB.
Wenn, kannst du die Abfrage per Makro anpassen.
Gruß R
Re: Dynamischer Feldzugriff in SQL
Verfasst: Do 28. Jan 2021, 07:52
von WonneWasti
Hallo, F3KB,
danke !