troubleshooting Question

need to convert decode to case

Avatar of pardeshirahul
pardeshirahul asked on
Oracle Database
15 Comments1 Solution698 ViewsLast Modified:
I have a query
SELECT RPAD (' ', 2) "FILLER1",
               RPAD (gcc.segment5, 6, ' ') "BANK_CODE",
               --RPAD(,6) "BANK_CODE",
               RPAD (' ', 4) "FILLER2",
               RPAD (SUBSTR (TRIM (glh.name), -2), 2) "FINANCIAL_CODE",
               RPAD (' ', 4) "FILLER3",
               SUBSTR (
                  RPAD (
                     (   glh.name
                      || '-'
                      || gll.je_line_num
                      || DECODE (gll.description, NULL, NULL, '-')
                      || gll.description),
                     40,
                     ' '),
                  1,
                  40)
                  "WORDING",
               RPAD (' ', 2) "FILLER4",
               RPAD (NVL (gll.reference_4, ' '), 7, ' ') "CHECK_NUM",
               RPAD (NVL (gll.reference_4, ' '), 12, ' ') "NUM",
               NVL (gll.reference_4, ' ') "NUM1",
               gll.reference_2 "CASH_RECEIPT_ID",
               RPAD (' ', 16) "FILLER5",
               --(LPAD(TO_CHAR(DECODE,GLH.CURRENCY_CODE,'USD',(DECODE(GLL.ENTERED_DR,NULL,GLL.ENTERED_CR,GLL.ENETERED_DR),(DECODE(GLL.ACCOUNTED_DR,NULL,GLL.ACCOUNTED_CR,GLL.ACCOUNTED_DR)),'999999999.00'),20,' ') "AMOUNT",
               DECODE (
                  glh.currency_code,
                  'USD', LPAD (
                            TO_CHAR (
                               DECODE (gll.entered_dr,
                                       NULL, gll.entered_cr,
                                       gll.entered_dr),
                               '999999999.00'),
                            20,
                            ' '),
                  LPAD (
                     TO_CHAR (
                        DECODE (gll.accounted_dr,
                                NULL, gll.accounted_cr,
                                gll.accounted_dr),
                        '999999999.00'),
                     20,
                     ' '))
                  "AMOUNT",
               RPAD (' ', 2) "FILLER6",
               RPAD (TO_CHAR (gll.effective_date, 'DDMMYYYY'), 8, ' ') "DATE",
               RPAD (' ', 3) "FILLER7",
               RPAD (DECODE (gll.accounted_dr, NULL, 'C', 'D'), 1, ' ')
                  "DEBIT_CREDIT",
               glh.je_header_id "HEADER_ID",
               gll.je_line_num "LINE_ID",
               glh.je_source "SOURCE",
               glh.je_category "CATEGORY",
               gll.gl_sl_link_id "GL_SL_LINK_ID",
               gll.reference_3 "REFERENCE_3"
          FROM apps.gl_je_headers glh,
               apps.gl_je_lines gll,
               apps.gl_code_combinations gcc
         WHERE     1 = 1
               AND glh.je_header_id = gll.je_header_id
               --AND GLH.JE_HEADER_ID = 2021
               AND gcc.code_combination_id = gll.code_combination_id
               AND gll.set_of_books_id = p_sob_id
               AND gll.period_name = p_period
               AND gcc.segment5 = NVL (p_acct, gcc.segment5)
               -- AND (GLH.CURRENCY_CODE = DECODE(P_CURRENCY,'LOCAL CURRENCY','EUR')
               --OR (GLH.CURRENCY_CODE = DECODE(P_CURRENCY,'FOREIGN CURRENCY',GLH.CURRENCY_CODE) AND GLH.CURRENCY_CODE<>'EUR'))
                              AND gcc.segment5 INAND (glh.currency_code =
                       DECODE (p_currency, 'FOREIGN CURRENCY', 'USD')
                    OR (glh.currency_code =
                           DECODE (p_currency,
                                   'LOCAL CURRENCY', glh.currency_code)
                        AND glh.currency_code <> 'USD'))

                      ('10011',
                       '10012',
                       '10013',
                       '10014',
                       '10015',
                       '10016',
                       '10017',
                       '10018',
                       '10019',
                       '10021',
                       '10023',
                       '10024',
                       '10037',
                       '10036',
                       '10038',
                       '10039')
      ORDER BY glh.je_source;

this part i have to change
AND (glh.currency_code =
                       DECODE (p_currency, 'FOREIGN CURRENCY', 'USD')
                    OR (glh.currency_code =
                           DECODE (p_currency,
                                   'LOCAL CURRENCY', glh.currency_code)
                        AND glh.currency_code <> 'USD'))

if foreign curreny then consider 'USD' and 'GBP, instead of just 'USD'

so to do it in decode
or do i have use case statement
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 15 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 15 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros