BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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: 66
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
Beiträge: 2674
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 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

F3K Total
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

Pit Zyclade
Beiträge: 2674
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 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

F3K Total
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

WonneWasti
! Supporter - Spende !
Beiträge: 66
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
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

WonneWasti
! Supporter - Spende !
Beiträge: 66
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten