Bezug auf meinen vorigen Thread "Berechnetes Feld bleibt leer" [url][viewtopic.php?f=8&t=12676] sei hiermit hergestellt. Der hier beobachtete Effekt ist im Ergebnis derselbe, kommt aber anders zustande.
Folgendes Beispiel:
Tabelle: Wert1, Wert2, Wert3, Steuerung
1 Datensatz: Wert1=1000, Wert2=2000, Wert3=3000, Steuerung=1
Abfrage1:
SELECT "Wert1", "Wert2", "Wert3" AS "Summe" FROM "Tabelle" WHERE "Steuerung" = 1
Ergebnis der Abfrage:
Wert1 Wert2 Wert3
1000 2000 3000
Abfrage2:
SELECT "Wert1", "Wert2", "Wert3" AS "Summe" FROM "Tabelle" WHERE "Steuerung" = 2
Ergebnis der Abfrage:
Leer.
Bis hierher richtig.
Jetzt Abfrage3:
SELECT "a"."Wert1" FROM "Abfrage1" AS "a", "Abfrage2" AS "b"
Anm: Die Abfrage macht so keinen Sinn. Es handelt sich um ein vereinfachtes Beispiel hier im Forum.
Ergebnis der Abfrage:
Leer.
Abwandlung der Tabelle:
Zusätzlich ein zweiter Datensatz, bei dem nur das Feld "Steuerung" belegt wird, die anderen Felder bleiben leer!
Datensatz2: Steuerung=2
Speichern, Tabellen aktualisieren.
Abfrage 3 erneut ausführen.
Ergebnis der Abfrage:
Wert1
1000
Ich fasse zusammen: Die Abfrage2 spielt bei späteren Abfragen erst dann mit, wenn sie in der Tabelle mindestens einmal über die Steuerung angesprochen wird.
Hier meine Frage:
1. Darf das sein oder ist es ein Fehler?
2. Umgehung?
Anmerkung zur Umgehung: Ggf. kommt die Zuweisung der Steuerung=2 nicht in Betracht und alle Datensätze werden mit Steuerung=1 belegt. Dann wäre der Nutzer per Anweisung zu verpflichten, mindestens einen Datensatz mit Steuerung=2 zu erstellen. Das ist möglich, aber unpraktisch. Geht es auch anders?
Vielen Dank schon mal!
Select-Abfrage bleibt leer
Moderator: Moderatoren
Re: Select-Abfrage bleibt leer
Hey BaseUser,
zu 2. Ich denke, du kanns thier auch Bedingunge einfügen - da musst du aber mal SQL direkt befragen. Also so etwas in der Form "From" ...wenn Abfrage2 = leer, dann nur Abdfrage 1, sonst Abfrage1 + Abfrage2.
Viele Grüeß
Thomas
Meiner Ansicht korrekt. Nach SQL sind die mit Komma separierten Bedingungen als "Und" zu inerpretieren, insofern stimmt das leere Ergebnis (logisches Und bei "From": eine unwahre = alles unwahr also leer).1. Darf das sein oder ist es ein Fehler?
zu 2. Ich denke, du kanns thier auch Bedingunge einfügen - da musst du aber mal SQL direkt befragen. Also so etwas in der Form "From" ...wenn Abfrage2 = leer, dann nur Abdfrage 1, sonst Abfrage1 + Abfrage2.
Viele Grüeß
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Select-Abfrage bleibt leer
Ah, ok, das macht Sinn. Vielen Dank, hast mir sehr weiter geholfen!