Duchschnitt von einem berechneteten Feld

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Duchschnitt von einem berechneteten Feld

Re: Duchschnitt von einem berechneteten Feld

von Barlee » Mo, 20.10.2008 20:26

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

Re: Duchschnitt von einem berechneteten Feld

von bello15 » Mo, 20.10.2008 19:35

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.

Re: Duchschnitt von einem berechneteten Feld

von Barlee » So, 19.10.2008 15:07

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

Duchschnitt von einem berechneteten Feld

von bello15 » So, 19.10.2008 12:27

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

Nach oben