简体   繁体   中英

Syntax Error in SQL Select statement with Case (Oracle)

I have the written following query but it i am getting an error message ie FROM KEY WORD NOT FOUND

Any idea?

SELECT H.AGG_HEADER_SEQ,
   H.PRICE,
   D.AGG_DETAIL_SEQ,
   D.MONEY_UNITS,
   D.CASH_VALUE,
   D.UNIT_VALUE,
   D.MONEY_UNITS_VALUE,
   CASE
      WHEN D.MONEY_UNITS = 'U' THEN (D.UNIT_VALUE * H.PRICE) / 1
      WHEN D.MONEY_UNITS = 'M' THEN D.UNIT_VALUE
      ELSE 0
   END
      AS CASH_VALUE_CALC INTO CAL_CASH_VALUE,
   CASE
      WHEN D.MONEY_UNITS = 'U' THEN D.CASH_VALUE
      WHEN D.MONEY_UNITS = 'M' THEN (D.CASH_VALUE * H.PRICE) / 1
      ELSE 0
   END
      AS UNIT_VALUE_CALC INTO CAL_UNIT_VALUE
   FROM FCS.ORDTRAN_NOM_AGG_HEADER H
   JOIN FCS.ORDTRAN_NOM_AGG_DETAIL D
      ON H.AGG_HEADER_SEQ = D.AGG_HEADER_SEQ
   WHERE H.AGG_HEADER_SEQ = 5379 AND D.ALLOW_PRICING = 'Y';  

You have to get rid of INTO CAL_CASH_VALUE :

SELECT H.AGG_HEADER_SEQ,
   H.PRICE,
   D.AGG_DETAIL_SEQ,
   D.MONEY_UNITS,
   D.CASH_VALUE,
   D.UNIT_VALUE,
   D.MONEY_UNITS_VALUE,
   CASE
      WHEN D.MONEY_UNITS = 'U' THEN (D.UNIT_VALUE * H.PRICE) / 1
      WHEN D.MONEY_UNITS = 'M' THEN D.UNIT_VALUE
      ELSE 0
   END
      AS CASH_VALUE_CALC ,
   CASE
      WHEN D.MONEY_UNITS = 'U' THEN D.CASH_VALUE
      WHEN D.MONEY_UNITS = 'M' THEN (D.CASH_VALUE * H.PRICE) / 1
      ELSE 0
   END
      AS UNIT_VALUE_CALC INTO CAL_UNIT_VALUE
   FROM FCS.ORDTRAN_NOM_AGG_HEADER H
   JOIN FCS.ORDTRAN_NOM_AGG_DETAIL D
      ON H.AGG_HEADER_SEQ = D.AGG_HEADER_SEQ
   WHERE H.AGG_HEADER_SEQ = 5379 AND D.ALLOW_PRICING = 'Y';

If you want to use this query for PL/SQL you have to put this right above the FROM clause, but you have to add variables for other fields.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM