вы пропустили случай, когда условию оператора case when APAC_Exposures_Map
. Security_Type
= // здесь нужно условное значение, и этот выбор будет перед именем таблицы
SELECT `Desk`, `VT_id`, `BloombergID`,`Id_Type`,`Position` ,`Price`,
`positions_desk`.`Multiplier`,`CCY`,`business_date`,
`APAC_Exposures_Map`.`Equity_Index`,`APAC_Exposures_Map`.`Security_Type`,
`APAC_Exposures_Map`.`Leverage`,
IF(Id_Type !='FWD',COALESCE(`APAC_Exposures_Map`.`Expiry`, `CBBC_Static_Data`.`Expiration_date`),
STR_TO_DATE(SUBSTRING(`VT_id`, 7, 6),'%y%m%d') ) AS `Expiration_date`,
`CBBC_Static_Data`.`Strike`,
(CASE WHEN (`APAC_Exposures_Map`.`Security_Type`='need value') THEN 'NetDetail' ELSE 'Detail'
END) AS `Record_Type`
FROM `risk_source`.`positions_desk`
LEFT JOIN (`risk`.`APAC_Exposures_Map`) ON`positions_desk`.`BloombergID`=UPPER(`APAC_Exposures_Map`.`BBG_Ticker`)
LEFT JOIN (`risk_source`.`CBBC_Static_Data`) ON LEFT(`positions_desk`.`BloombergID`,5) =`CBBC_Static_Data`.`CBBC_Name`
WHERE business_date= ? AND (Id_Type='FUT') AND Desk NOT IN ('HKCOI')