Как использовать более одного случая с разными столбцами - PullRequest
0 голосов
/ 22 ноября 2018
SELECT 
description_arab, 
CTS_TRX_TYPE, 
comp_code,
branch_code,
currency_code,
gl_code,
cif_sub_no,
cts_trs_no,
trans_date,
value_date,
fc_amount,
cv_amount,description,case when fc_amount is null then '0' else fc_amount end end as fc  , 
case when CTS_TRX_TYPE is null then 'JV' else CTS_TRX_TYPE end end as TRX_TYPE,
 CASE WHEN CURRENCY_CODE = 368 THEN 'IQD' ELSE CASE WHEN CURRENCY_CODE = 840 THEN 'USD' END  END AS CURRENCY 
 FROM dof WHERE to_date(trans_date,'DD/MM/YYYY')  between   to_date('24/09/18,'DD/MM/YYYY') AND 
 TO_DATE('21/11/18'     ,'DD/MM/YYYY') and currency_code IS NOT NULL
  order by   cts_trs_no

1 Ответ

0 голосов
/ 22 ноября 2018

Да, вы можете использовать несколько операторов в нескольких столбцах таблицы.Но из вашего запроса я вижу дополнительные операторы END, поэтому просто удалил их из вашего запроса и обновил последний оператор case.Не уверен, что это то, что вы хотите-

SELECT description_arab, 
   cts_trx_type, 
   comp_code, 
   branch_code, 
   currency_code, 
   gl_code, 
   cif_sub_no, 
   cts_trs_no, 
   trans_date, 
   value_date, 
   fc_amount, 
   cv_amount, 
   description, 
   CASE 
          WHEN fc_amount IS NULL THEN '0' 
          ELSE fc_amount 
   END AS fc , 
   CASE 
          WHEN cts_trx_type IS NULL THEN 'JV' 
          ELSE cts_trx_type 
   END AS trx_type, 
   CASE 
       WHEN currency_code = 368 THEN 'IQD' 
       WHEN currency_code = 840 THEN 'USD' 
       ELSE 'INVALID CURRECY' -- added this to check other checks as well
      END as currency 
    FROM   dof 
          WHERE  to_date(trans_date,'DD/MM/YYYY') BETWEEN to_date('24/09/18,'dd/mm/yyyy') AND  TO_DATE('21/11/18'     ,'dd/mm/yyyy') and currency_code IS NOT NULL   order by   cts_trs_no
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...