Ich versuche, eine Select-Anweisung mit CAST schreiben, aber ich weiß nicht, wie Sie den Float-Wert einfügen.So definieren Sie Float CAST in OpenSQL
funktioniert das nicht:
SELECT
field1, field2,
CAST(field3 AS FLTP) * CAST('0.03' AS FLTP) AS out2
FROM table1
INTO TABLE @DATA(lt_table1).
Ich bekomme diese Fehlermeldung: CASTs to a numeric type are not allowed for '0.03' (the type is incorrect)
, also denke ich, alles in Anführungszeichen Text angenommen werden.
fand ich diese Abhilfe:
DATA: lv_discount TYPE f VALUE '0.03'.
SELECT
field1, field2,
CAST(field3 AS FLTP) * CAST(@lv_flt AS FLTP) AS out1
FROM table1
INTO TABLE @DATA(lt_table1).
Wie kann ich es ohne diese Abhilfe?
ich eine Konstante verwenden würde zu verwenden, anstatt eine Variable, aber auch andere als das - warum die Besetzung an erster Stelle? – vwegert
@vwegert Feld3 ist Typ CURR, wenn ich versuche, es ohne Casting zu multiplizieren, bekomme ich diese Fehlermeldung: '" Nur elementare arithmetische Typen können in arithmetischen Ausdrücken verwendet werden. Die Typauswahlliste. Der Typ von '0.03' ist ungültig. "' –
Lassen Sie mich das umformulieren - Warum möchten Sie das in OpenSQL überhaupt machen? 0.03 sieht für mich wie die klassische "magische Zahl" aus, und um einen "Rabatt" zu bestimmen, würde ich etwas wie BRF + verwenden, denn, weißt du - diese Dinge ändern sich ständig ... – vwegert