Duchschnitt von einem berechneteten Feld

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

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

Duchschnitt von einem berechneteten Feld

Beitrag von bello15 »

Hallo, ich kann in einer Abfrage mit 2 Felder rechnen und das Ergebnis ein einem neuen Feld anzeigen. Jetzt will ich von den Ergebnissen den Durchschnitt berechnen, komme aber auf den Fehler Unexpected token in statement - Dateninhalte konnten nicht geladen werden

so sieht meine Abfrage aus
(
SELECT "StartPreis","AktuellerPreis","QM",CASEWHEN("AktuellerPreis" IS NULL,"StartPreis" / "QM","AktuellerPreis" / "QM") as "BerechnPreisQM" FROM "TabETWAngebote" WHERE ("Stadt") = 'Hamburg'
)
UNION ALL
(
SELECT
AVG ("CASEWHEN("AktuellerPreis" IS NULL,"StartPreis" / "QM","AktuellerPreis" / "QM")") AS "BerechnPreisQM",
NULL AS "AktuellerPreis",
NULL AS "StartPreis",
NULL AS "QM"
FROM
"TabETWAngebote"
WHERE ("Stadt") = 'Hamburg'
)

Hat jemand einen Tipp - Danke im voraus
Open Office 4.0.1
Windows 7 home premium SP 1
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Duchschnitt von einem berechneteten Feld

Beitrag von Barlee »

Hallo bello15,
Hat jemand einen Tipp
Ja!

Code: Alles auswählen

AVG ("CASEWHEN("AktuellerPreis" IS NULL,"StartPreis" / "QM","AktuellerPreis" / "QM")") AS "BerechnPreisQM",
ist nicht ok!
probiere stattdessen:

Code: Alles auswählen

AVG (CASEWHEN("AktuellerPreis" IS NULL,"StartPreis" / "QM","AktuellerPreis" / "QM")) AS "BerechnPreisQM",
Zum Anderen musst Du Deine abgefragten Spalten in die richtige Reihenfolge bringen. Diese sind mächtig durcheinander. Immer daran denken, dass eine UNION die zweite Ergebnistabelle an die erste hängt.

Tablle1:
"StartPreis",
"AktuellerPreis",
"QM"
"BerechnPreisQM"

Tabelle2:
"BerechnPreisQM"
"AktuellerPreis",
"StartPreis",
"QM"

Deckung hättest Du nur in der Spalte "AktuellerPreis"

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

Re: Duchschnitt von einem berechneteten Feld

Beitrag von bello15 »

Hallo Barlee,
vielen Dank, jetzt geht's einwandfrei.
Ich glaube, 2 Dinge aus Deinem Tipp gelernt zu haben:
1. Werden 2 Abfragen miteinander verbunden, müssen die Spalten in gleicher Reihenfolge sein.
2. Für AVG oder SUM bin ich von einer Syntax SELECT AVG("Feld") AS "Feld" bzw SELECT SUM("Feld") AS "Feld" ausgegangen, wird nun ein CASEWHEN eingefügt, braucht dieser Befehl nicht auch noch in " " gesetzt werden.
Open Office 4.0.1
Windows 7 home premium SP 1
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Duchschnitt von einem berechneteten Feld

Beitrag von Barlee »

Hallo bello15,

freut mich, wenns funktioniert.
Ich glaube, 2 Dinge aus Deinem Tipp gelernt zu haben:
1. Werden 2 Abfragen miteinander verbunden, müssen die Spalten in gleicher Reihenfolge sein.
Du meinst das richtige, ja! Man kann bei einer UNION zwar die Spalten in "falscher" Reihenfolge angeben, sinnvoll wird das Ergebnis dann allerdings in den meisten Fällen nicht sein. Dann hättest Du z.B. den "StartPreis" aus Tabelle1 und darunter steht dann "BerechnPreisQM" aus Tabelle2. Ursächlich für die Fehlermeldung war jedoch nicht die falsche Reihenfolge der Spalten, sondern die Anführungszeichen im CASEWHEN.
Für AVG oder SUM bin ich von einer Syntax SELECT AVG("Feld") AS "Feld" bzw SELECT SUM("Feld") AS "Feld" ausgegangen, wird nun ein CASEWHEN eingefügt, braucht dieser Befehl nicht auch noch in " " gesetzt werden.
Korrekt! In " " setzt Du nur Tabellennamen, Aliase, Spaltenbezeichner

Gruß Barlee
Antworten