🙏 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. 🤗

Dynamischer Feldzugriff in SQL

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Dynamischer Feldzugriff in SQL

Beitrag von WonneWasti » Sa 23. Jan 2021, 15:54

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

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Dynamischer Feldzugriff in SQL

Beitrag von Pit Zyclade » Sa 23. Jan 2021, 16:59

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?
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Dynamischer Feldzugriff in SQL

Beitrag von F3K Total » 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.
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
Windows 11: AOO, LO Linux Mint: AOO, LO

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Dynamischer Feldzugriff in SQL

Beitrag von Pit Zyclade » So 24. Jan 2021, 09:30

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.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Dynamischer Feldzugriff in SQL

Beitrag von F3K Total » So 24. Jan 2021, 16:38

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
Windows 11: AOO, LO Linux Mint: AOO, LO

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Dynamischer Feldzugriff in SQL

Beitrag von WonneWasti » So 24. Jan 2021, 18:15

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

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Dynamischer Feldzugriff in SQL

Beitrag von F3K Total » Mo 25. Jan 2021, 16:58

Moin,
geht meiner Meinung nach nicht in HSQLDB.
Wenn, kannst du die Abfrage per Makro anpassen.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Dynamischer Feldzugriff in SQL

Beitrag von WonneWasti » Do 28. Jan 2021, 07:52

Hallo, F3KB,

danke !


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