CASTでselect文を書き込もうとしていますが、浮動小数点値の挿入方法がわかりません。OpenSQLでfloat CASTを定義する方法
これは動作しません:
SELECT
field1, field2,
CAST(field3 AS FLTP) * CAST('0.03' AS FLTP) AS out2
FROM table1
INTO TABLE @DATA(lt_table1).
は、私は、このエラーメッセージが出ます:CASTs to a numeric type are not allowed for '0.03' (the type is incorrect)
をので、私は引用符で何がテキストであると想定されていると思います。
私はこの回避策を見つけた:
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).
私はこの回避策なしでそれをどのように行うことができますか?
オープンSQL内のABAP式を使用することですそれよりも - なぜ最初のキャストですか? – vwegert
@vwegert field3はCURR型ですが、キャストせずに掛けようとするとこのエラーメッセージが表示されます: ''算術式では基本算術型しか使用できません。 "' –
私はそれを言い換えることができます - なぜあなたは最初にOpenSQLでこれをしたいのですか? 0.03は私にとって古典的な「マジックナンバー」のように見えますが、「割引」を決定するためにはBRF +のようなものを使用したいと思います。これらのことは常に変化し続けています... – vwegert