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