miamit hat geschrieben:Das Ergebnis ist dann nicht immer eine Ganzzahl, sondern am Beispiel
(6*0+5*0+4*0+3*1+2*1+1*1 ) / 21.0 = 0.28irgendwas
Statt dieser Dezimalzahl bliebt die Zelle leider leer.
Auch das ändern des Divisors von 21 auf 21.0 änderte nichts daran.
Ich kann den Fehler nicht nachvollziehen. Bei mir funktionieren folgende Varianten (Summe als Zwischenwert, damit der auch zu sehen ist.
Code: Alles auswählen
SELECT "ID",
( 2 * "A" + 3 * "B" ) AS "Summe",
( 2 * "A" + 3 * "B" ) / 11 AS "IntDiv",
( 2 * "A" + 3 * "B" ) / 11.0 AS "Div1",
CAST( ( 2 * "A" + 3 * "B" ) AS DECIMAL ) / 11.0 AS "Div2"
FROM "Tabelle1" WHERE "A" IS NOT NULL
Die Variante mit CONVERT funktioniert bei mir überhaupt nicht und liefert eine äußerst merkwürdige Fehlermeldung.
syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
Die Variante mit CAST funktioniert nur dann, wenn auch der Divisor als Decimal erkannt wird. Die Variante mit Integer-Division enthält bei HSQL offensichtlich eine Rundung (meistens wird abgerundet).
Wenn in einem Fall eine "leere" Angabe kommt, kann das nur daran liegen, dass in einem Datensatz ein
Feldinhalt NULL lautet (denn NULL, also "unbekannt", plus irgendetwas kann nur "unbekannt" liefern, also NULL).
Entweder du findest mit diesem Hinweis den Fehler; oder es bleibt dir nichts übrig als eine (anonymisierte und auf das Wesentliche reduzierte) Beispieldatei hochzuladen. Wegen der Differenzen zu Roberts Antwort gilt außerdem sein Hinweis:
RobertG hat geschrieben:dann möchte ich doch einmal wissen, mit welcher Office-Version und welcher Datenbank Du arbeitest.
Danach wird auch in
Allgemeine Hinweise zur Forumsbenutzung ausdrücklich gefragt. (Warum kann diese Information nicht sofort geliefert werden

) Jürgen
[quote="miamit"]Das Ergebnis ist dann nicht immer eine Ganzzahl, sondern am Beispiel
(6*0+5*0+4*0+3*1+2*1+1*1 ) / 21.0 = 0.28irgendwas
Statt dieser Dezimalzahl bliebt die Zelle leider leer.
Auch das ändern des Divisors von 21 auf 21.0 änderte nichts daran.[/quote]
Ich kann den Fehler nicht nachvollziehen. Bei mir funktionieren folgende Varianten (Summe als Zwischenwert, damit der auch zu sehen ist.
[code]SELECT "ID",
( 2 * "A" + 3 * "B" ) AS "Summe",
( 2 * "A" + 3 * "B" ) / 11 AS "IntDiv",
( 2 * "A" + 3 * "B" ) / 11.0 AS "Div1",
CAST( ( 2 * "A" + 3 * "B" ) AS DECIMAL ) / 11.0 AS "Div2"
FROM "Tabelle1" WHERE "A" IS NOT NULL[/code]
Die Variante mit CONVERT funktioniert bei mir überhaupt nicht und liefert eine äußerst merkwürdige Fehlermeldung.
[quote]syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE[/quote]
Die Variante mit CAST funktioniert nur dann, wenn auch der Divisor als Decimal erkannt wird. Die Variante mit Integer-Division enthält bei HSQL offensichtlich eine Rundung (meistens wird abgerundet).
Wenn in einem Fall eine "leere" Angabe kommt, kann das nur daran liegen, dass in einem Datensatz ein [b]Feldinhalt NULL [/b]lautet (denn NULL, also "unbekannt", plus irgendetwas kann nur "unbekannt" liefern, also NULL).
Entweder du findest mit diesem Hinweis den Fehler; oder es bleibt dir nichts übrig als eine (anonymisierte und auf das Wesentliche reduzierte) Beispieldatei hochzuladen. Wegen der Differenzen zu Roberts Antwort gilt außerdem sein Hinweis:
[quote="RobertG"]dann möchte ich doch einmal wissen, mit welcher Office-Version und welcher Datenbank Du arbeitest.[/quote]
Danach wird auch in [url=http://de.openoffice.info/viewtopic.php?f=9&t=54568]Allgemeine Hinweise zur Forumsbenutzung[/url] ausdrücklich gefragt. (Warum kann diese Information nicht sofort geliefert werden :shock: ) Jürgen