cancel
Showing results for 
Search instead for 
Did you mean: 

Can I cast to Float?

Former Member
0 Kudos

I try to do a cast as FLOAT

CREATE COLUMN TABLE STRUTTURA_DATI_CAMBIO2 (

COD_SCENARIO               VARCHAR(15) NOT NULL,

COD_AZIENDA_MADRE          VARCHAR(30) NOT NULL,

COD_AZIENDA_FIGLIA         VARCHAR(30) NOT NULL,

NUM_EVENTO                 INTEGER NOT NULL,

COD_VALUTA2                 VARCHAR(5) NOT NULL,

CAMBIO                     DECIMAL(21,12) NULL DEFAULT 0

);

CREATE COLUMN TABLE VALUTA2  (

COD_VALUTA2        VARCHAR(5) NOT NULL,

COD_VALUTA2_RIF    VARCHAR(5) NULL,

COEFFICIENTE_RIF  DECIMAL(21,12) NULL  DEFAULT 1

);

SELECT * FROM VALUTA2

insert into VALUTA2 (COD_VALUTA2, COD_VALUTA2_RIF, COEFFICIENTE_RIF) values ('EUR', 'EUR2', 12.123);

insert into VALUTA2 (COD_VALUTA2, COD_VALUTA2_RIF, COEFFICIENTE_RIF) values ('DOL', 'DOL2', 5.2);

insert into VALUTA2 (COD_VALUTA2, COD_VALUTA2_RIF, COEFFICIENTE_RIF) values ('STE', 'STE2', 7);

insert into STRUTTURA_DATI_CAMBIO2 (COD_SCENARIO, COD_AZIENDA_MADRE, COD_AZIENDA_FIGLIA, NUM_EVENTO, COD_VALUTA2, CAMBIO)

VALUES ('PARTC', 'AZI1', 'AZIF1', '1', 'EUR2', 5.2);

insert into STRUTTURA_DATI_CAMBIO2 (COD_SCENARIO, COD_AZIENDA_MADRE, COD_AZIENDA_FIGLIA, NUM_EVENTO, COD_VALUTA2, CAMBIO)

VALUES ('PARTC', 'AZI1', 'AZIF1', '2', 'DOL2', 3.1234);

insert into STRUTTURA_DATI_CAMBIO2 (COD_SCENARIO, COD_AZIENDA_MADRE, COD_AZIENDA_FIGLIA, NUM_EVENTO, COD_VALUTA2, CAMBIO)

VALUES ('PARTC', 'AZI1', 'AZIF1', '3', 'STE2', 3);

SELECT 

(MAX(S2.CAMBIO)*MAX(V1.COEFFICIENTE_RIF)) /

CAST(MAX(S1.CAMBIO)*MAX(V2.COEFFICIENTE_RIF) AS FLOAT) as COEFFICIENTE_CONV

FROM

STRUTTURA_DATI_CAMBIO2 S1,

STRUTTURA_DATI_CAMBIO2 S2,

VALUTA2 V1,

VALUTA2 V2

WHERE S1.COD_SCENARIO = 'PARTC'

AND S2.COD_SCENARIO = 'PARTC'

AND S1.NUM_EVENTO = S2.NUM_EVENTO

AND S1.COD_AZIENDA_MADRE = S2.COD_AZIENDA_MADRE

AND S1.COD_AZIENDA_FIGLIA = S2.COD_AZIENDA_FIGLIA

AND (S1.COD_VALUTA2 = V1.COD_VALUTA2 OR S1.COD_VALUTA2 = V1.COD_VALUTA2_RIF)

AND (S2.COD_VALUTA2 = V2.COD_VALUTA2 OR S2.COD_VALUTA2 = V2.COD_VALUTA2_RIF)

AND S1.CAMBIO != 0

GROUP BY

S1.COD_AZIENDA_MADRE,

S1.COD_AZIENDA_FIGLIA,

V1.COD_VALUTA2,

V2.COD_VALUTA2,

S1.NUM_EVENTO

I get the following error

Could not execute 'SELECT (MAX(S2.CAMBIO)*MAX(V1.COEFFICIENTE_RIF)) / CAST(MAX(S1.CAMBIO)*MAX(V2.COEFFICIENTE_RIF) AS ...' in 48 ms 599 µs .

SAP DBTech JDBC: [257] (at 102): sql syntax error: incorrect syntax near "FLOAT": line 3 col 49 (at pos 102)

I haven't the problems with a cust as DECIMAL or INTEGER or DOUBLE

Could you please help us with Issue? Can I cast to float?

Thanx

Paola

Accepted Solutions (1)

Accepted Solutions (1)

vivekbhoj
Active Contributor
0 Kudos

Hi Paola,

CAST to FLOAT is not supported.

Check this SQL HANA reference for supported Data Types:

http://help.sap.com/hana/html/sql_function_cast.html

Regards,

Vivek

Answers (0)