Arethmetische Operationen bei SQL im WHERE Teil

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von zideshowbob (ForumUser / 5 / 1 / 0 ) »
Hallo Forum!
Ich muss MSSQL in ABAP SQL "überführen" und da bin ich auf folgende SQL Anweisung gestoßen, mit der ich nicht zurechtkomme:

Code: Alles auswählen.

SELECT id
FROM detail AS d INTO wa_grupp
WHERE d~TRANSACTION_TIME > tmp_time2 AND d~transaction_time < wa_base2-payment_date AND d~terminal_id >= ( SELECT terminal_nr FROM terminal WHERE konto = wa_base2-account_no AND grupp = wa_base-terminalnr )
AND ( d~netsum - wa_base2-summa ) > 0.015.
Das ganze holt sich aus einer internen Tabelle Daten, ich loope darüber in die wa_base2 und dann wird abgefragt. Probleme macht der letzte Teil

Code: Alles auswählen.

AND ( d~netsum - wa_base2-summa ) > 0.015
Die Fehlermeldung dazu lautet
"-" is not a valid comparisn operator.
Wenn ich für die 0,015 das Komma nehme krieg ich die Fehlermeldung
Comma without preceding colon (after SELECT ?).
Ich hab schon einiges probiert, aber ich kriegs nicht gebacken. Hat wer nen Tipp?

Danke schon mal,

Christof!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Du könntest auch

Code: Alles auswählen.

EXEC SQL.
        OPEN dbcur for     SELECT  ........
      ......
ENDEXEC.
benutzen?!?!

Ich bin der Meinung das sich die Fehlermeldung":
Die Fehlermeldung dazu lautet
"-" is not a valid comparisn operator.
bezieht sich auf das '-' (minuszeichen) zwischen dem 'd~netsum - wa_base2-summa'
und nicht auf die Zahl '0.015'.

Evlt. diesen Part der Selec-Anweisung erst einmal weglassen und dann später abfragen.

Re: Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von zideshowbob (ForumUser / 5 / 1 / 0 ) »
Hallo!
Ich hab jetzt mal den wa_base2-netsum einer temporären Variablen zugeordnet und in den Selectteil gepackt, die Fehlermeldung bezieht sich auf den Minusoperator.

Code: Alles auswählen.

tmp_netsum = wa_base2-summa.
...
AND ( d~netsum - tmp_netsum ) LT 1
...
Leider ohne Wirkung.

Du meinst, ich soll mich später darum kümmern, wie meinst Du das? Nochmal einen Select bzw. Join mit der ursprünglichen Tabelle und der dann selektierten?

Grüße

Christof!

Re: Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von iSD (ForumUser / 5 / 0 / 0 ) »
es gilt doch:
( d~netsum - wa_base2-summa ) > 0.015.
<=> d~netsum > 0.015 + wa_base2-summa.

also warum nicht?

Code: Alles auswählen.

"Loop over wa_base2"

wert = 0.015 + wa_base2-summa.

SELECT id
FROM detail AS d INTO wa_grupp
WHERE d~TRANSACTION_TIME > tmp_time2 AND d~transaction_time < wa_base2-payment_date AND d~terminal_id >= ( SELECT terminal_nr FROM terminal WHERE konto = wa_base2-account_no AND grupp = wa_base-terminalnr )
AND d~netsum > wert.

"Endloop."
Scheint doch ganz simpel zu sein. :) Oder übersehe ich da grade was?

Re: Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
iSD hat geschrieben: Scheint doch ganz simpel zu sein. :) Oder übersehe ich da grade was?
Nö, so geht es auch und ist auch simpler.

Mein Vorschlag war nicht in der Art, weil ich erstmal wollte, dass der Poster diese Zeile komplett weglässt um zu sehen, ob es wirklich daran liegt :-)

Re: Arethmetische Operationen bei SQL im WHERE Teil

Beitrag von zideshowbob (ForumUser / 5 / 1 / 0 ) »
iSD hat geschrieben:es gilt doch:
( d~netsum - wa_base2-summa ) > 0.015.
<=> d~netsum > 0.015 + wa_base2-summa.

...

Scheint doch ganz simpel zu sein. :) Oder übersehe ich da grade was?
Ich hab was übersehen. Es gibt auch den Fall, dass ein
HAVING ABS(SUM(netsum) - wa_base2-summa) < 0.015
vorkommt. Das kann ich mit Deiner Version dank der Summenfunktion so wohl nicht "erschlagen"...

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1718
Views
Referenzielle Integrität bei INSERT-Operationen
von yuro » 09.02.2015 18:24 • Verfasst in ABAP Objects®
6
Antw.
2834
Views
Index im where Teil
von kaim77 » 10.09.2014 08:54 • Verfasst in ABAP® Core
11
Antw.
1321
Views
Dynamischer Methodenaufruf (Teil 327)
von Icke0801 » 30.04.2022 08:28 • Verfasst in ABAP Objects®
6
Antw.
2465
Views
Teil-Commit in Prozess
von Huskyx » 07.04.2017 17:44 • Verfasst in ABAP® Core
20
Antw.
6005
Views
Teil Gebrauchsfertig machen
von Thomas17 » 13.08.2012 15:39 • Verfasst in Sales and Distribution

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.