Seite 1 von 1
Re: Berechnung in der Abfrage
Verfasst: Fr, 25.03.2011 18:06
von AndreasJBittner
Hallo,
probier mal
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: Fr, 25.03.2011 19:19
von F3K Total
... oder, wenn Du eine Spalte "Operator" als varchar in die Tabelle1 einfügst , dann auf "Abfrage in SQL-Ansicht erstellen..." und folgenden Code einfügst:
Code: Alles auswählen
SELECT "A", "Operator", "B", case when "Operator"='+' then "A"+"B" when "Operator"='-' then "A"-"B" when "Operator"='*' then "A"*"B" when "Operator"='/' then "A"/"B" else 0 END as "Ergebnis" from "Tabelle1"
Dann noch den Knopf
SQL.png
einmal drücken, und speichern. Jetzt kannst Du in Tabelle1 den Operator vorgeben.
G R
Re: Berechnung in der Abfrage
Verfasst: Sa, 26.03.2011 11:41
von AndreasJBittner
Hallo,
ach so, das sollte so sein, ich dachte, Du wolltest nur im SELECT-statement rechnen. Aber dann geht es sicher noch einfacher mit
(ungetestet). Das geklammerte Statement liefert Dir '(Zahl A) (Operator B) (Zahl C)' und das zweite rechnet es aus.
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: Sa, 26.03.2011 13:15
von F3K Total
Hallo Andreas,
habe ich mal ausprobiert weil es so schön einfach aussieht.
Will aber leider nicht klappen, Fehlermeldung (Single Value expected).
Kannst Du mal die komplette Syntax schicken?
G R
Re: Berechnung in der Abfrage
Verfasst: Sa, 26.03.2011 14:26
von AndreasJBittner
Hallo,
sorry, eben seh ich auch, daß das ja nur die Hälfte des Statements ist:
Vielleicht mußt Du die `||´ durch
Code: Alles auswählen
SELECT (SELECT CONCAT(A, CONCAT(B, C))) FROM Tabelle);
ersetzen -- soweit ich weiß, gilt `||´ nur für OOo/LO und nicht für z. B. MySQL.
Ein `Select 2+2;´ müßte Dir 4 liefern, d.h. wenn Du in den Tabellenspalten Zahlen und Operatoren hast und die so zusammenbaust, müßte es klappen.
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: Sa, 26.03.2011 16:28
von F3K Total
Hallo Andreas,
nö klappt nicht.
|| und Concat (A,B) gehen zwar beide zum Verketten von Strings, was mich aber wundert, ist, dass Du zweimal "Select", aber nur einmal "from" in der Abfrage hast.
Hast Du noch Ideen?
G R
Re: Berechnung in der Abfrage
Verfasst: Sa, 26.03.2011 23:10
von AndreasJBittner
Hallo,
naja, das select in Klammern sollte dir ja liefern (Zahl aus A) und (Operator aus B) und (Zahl aus C), also zB A + B und das äußere select sollte dann den Ausdruck einfach nur ausrechnen. Ich bossel morgen mal rum.
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: So, 27.03.2011 20:10
von F3K Total
Hey Andreas,
was ist, hast du was rumgebosselt?
Nicht, dass aus Deiner Idee am Ende nur Kappes rauskommt!
"Müsste ..." hilft nämlich nicht ...
Bin wirklich gespannt, ob das mit dem Concat funktionieren kann.
Grüsse R
Re: Berechnung in der Abfrage
Verfasst: Mo, 28.03.2011 09:00
von AndreasJBittner
Hallo,
jau, und so wie ich dachte klappts nicht, zumindest nicht mit MySQL. Das innere Statement liefert zwar '2+3' als Ergebnis, aber das äußere meldet dann einen Fehler. Aber 'select 2+3;' liefert das Ergebnis '5'. Schade
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: Mo, 28.03.2011 16:30
von F3K Total
Schade, find ich auch

Gruß R
Re: Berechnung in der Abfrage
Verfasst: Mi, 06.04.2011 16:03
von AndreasJBittner
Hi,
es geht doch! Nur rechnet OOo es leider nicht aus. Ein
liefert immerhin den korrekten String aus Zahl1 Operator und Zahl2. Aber wie jetzt das äußere SELECT zum Rechnen bewegen?
Grüße
Andreas
Re: Berechnung in der Abfrage
Verfasst: Mi, 06.04.2011 17:51
von DPunch
Aloha
AndreasJBittner hat geschrieben:liefert immerhin den korrekten String aus Zahl1 Operator und Zahl2. Aber wie jetzt das äußere SELECT zum Rechnen bewegen?
Nur durch Arbeiten mit Teilstrings, CASE-Verzweigung und viel Aufwand. Ein SELECT ist nunmal nicht dafür gedacht, mit einem String zu rechnen.
Im Gegensatz dazu ist ein
natürlich kein String und wird daher auch logischerweise als mathematische Operation erkannt.