Select-Abfrage bleibt leer

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

BaseUser
Beiträge: 9
Registriert: Di, 29.05.2007 14:33

Select-Abfrage bleibt leer

Beitrag von BaseUser »

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!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Select-Abfrage bleibt leer

Beitrag von Toxitom »

Hey BaseUser,
1. Darf das sein oder ist es ein Fehler?
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).
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
BaseUser
Beiträge: 9
Registriert: Di, 29.05.2007 14:33

Re: Select-Abfrage bleibt leer

Beitrag von BaseUser »

Ah, ok, das macht Sinn. Vielen Dank, hast mir sehr weiter geholfen!
Antworten