Summe nur für Markierfeld Daten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

bello15
***
Beiträge: 53
Registriert: Fr, 10.11.2006 10:36

Summe nur für Markierfeld Daten

Beitrag von bello15 »

Hallo
mittels eines Markierfelder selektiere ich bestimmte Datensätze. Die Datensätze enthalten ein Feld mit einem Betragwert (numerisches Feld). In der Abfrage will ich die selektierten Daten im Feld Betrag addieren.
Mein Abfrage, siehe unten, gibt mir korrekt die selektierten Datensätze, aber ich bekomme immer die Summe aller Datensätzen (nicht die selektieten).

(
SELECT "Betragsfeld", "ID", "Feld2", "Feld3", "Feld4" FROM "DBank" WHERE ( "Feld4" = 'TRUE' ) ORDER BY "Feld2", "Feld3" ASC
)
UNION ALL
(
SELECT
SUM("Betragsfeld") AS "Betragsfeld",
NULL as "ID", NULL as "Feld2", NULL as "Feld3", NULL as "Feld4" FROM "DBank"
)

Hat jemand eine Idee? Vielen Dank vorab.
Open Office 4.0.1
Windows 7 home premium SP 1
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Summe nur für Markierfeld Daten

Beitrag von F3K Total »

Guten Abend,
vielleicht solltest Du nicht nur bei der Auswahl der Zeilen, sondern auch bei der Bildung der Summe nur die gewünschten Datensätze auswählen:
(
SELECT "Betragsfeld", "ID", "Feld2", "Feld3", "Feld4" FROM "DBank" WHERE ( "Feld4" = 'TRUE' ) ORDER BY "Feld2", "Feld3" ASC
)
UNION ALL
(
SELECT
SUM("Betragsfeld") AS "Betragsfeld",
NULL as "ID", NULL as "Feld2", NULL as "Feld3", NULL as "Feld4" FROM "DBank" WHERE ( "Feld4" = 'TRUE' )
)
Gruß R
bello15
***
Beiträge: 53
Registriert: Fr, 10.11.2006 10:36

Re: Summe nur für Markierfeld Daten

Beitrag von bello15 »

Hallo F3K Total,
vielen Dank für Deinen Tipp. Habe es ausprobiert und leider geht es nicht. Ich bekomme den Fehler Hinweis "Die Dateninhalte konnten nicht geladen werden. Not a condition in statement".
Wenn ich anschliessend SQL Command direkt ausführen wähle erhalte ich diesen Hinweis "Syntax error in expression" ?
Open Office 4.0.1
Windows 7 home premium SP 1
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Summe nur für Markierfeld Daten

Beitrag von F3K Total »

Hallo bello15,
der Fehler liegt anscheinend im "as":

Code: Alles auswählen

SELECT "Betragsfeld", "ID", "Feld2", "Feld3", "Feld4" FROM "DBank" WHERE  "Feld4" = 'TRUE' ORDER BY "Feld2", "Feld3" ASC
UNION ALL SELECT SUM("Betragsfeld"), NULL, NULL, NULL, NULL  FROM "DBank" WHERE  "Feld4" = 'TRUE' 
funktioniert bei mir. Man kann die Spalten wohl nicht zweimal benennen.

Ach, und "Syntax error in expression" kommt dann, wenn man "SQL-Komando direkt ausführen"
SQL_direkt.png
SQL_direkt.png (3.02 KiB) 1800 mal betrachtet
nicht gesetzt hat.

Gruß R
bello15
***
Beiträge: 53
Registriert: Fr, 10.11.2006 10:36

Re: Summe nur für Markierfeld Daten

Beitrag von bello15 »

Hallo F3K Total,
mit Deinem code funktioniert die Abfrage !!! Vielen Dank.
So ganz habe ich aber die Logik nicht verstanden. Wenn ich alle Datensätze abfrage und die Gesamtsumme ermittele, dann macht das "as" bei der zweiten Spaltenbenennung keine Probleme, offentsichtlich nur wenn eine Auswahl "WHERE" abgefragt wird. Wie auch immer, ich merke mir den wichtigen Unterschied.
Wegen SQL Command direkt ausführen saß der Fehler wohl vor dem PC. Statt einzuschalten habe ich wohl ausgeschaltet.
Open Office 4.0.1
Windows 7 home premium SP 1
Antworten