Connecting Tech Pros Worldwide Forums | Help | Site Map

convert access sql to oracle sql

Newbie
 
Join Date: Aug 2009
Posts: 1
#1: Aug 5 '09
Can someone help me convert this Access query to Oracle SQL?

UPDATE t1 INNER JOIN t2 ON (t1.begin_year = t2.FY) AND (t1.subhead = t2.SUBHEAD) AND (t1.proj = t2.PROJECT) AND (t1.pdli = t2.TASK) AND (t1.Department = t2.BRANCH) AND (t1.PM_Code = t2.PGM_MGR_CODE) AND (t1.Parm = t2.PARM_CODE) SET t1.PE = t2.dodpe, t1.FRC = Mid(t2.FRC,1,5), t1.FRC_Title = Mid(t2.FRC_Title,1,99), t1.PlusUp = IIf(Mid(Trim(t2.frc_title),1,2)='(C',True,False), t1.Loa_Key = t2.loa_key, t1.FGLI = t2.fgli

Thanks!

debasisdas's Avatar
Moderator
 
Join Date: Dec 2006
Location: Bangalore ,India
Posts: 7,511
#2: Aug 6 '09

re: convert access sql to oracle sql


you need to replace mid with substr and iif with case.
OraMaster's Avatar
Member
 
Join Date: Aug 2009
Location: Pune, India
Posts: 76
#3: Aug 6 '09

re: convert access sql to oracle sql


Quote:

Originally Posted by ivy317317 View Post

Can someone help me convert this Access query to Oracle SQL?

UPDATE t1 INNER JOIN t2 ON (t1.begin_year = t2.FY) AND (t1.subhead = t2.SUBHEAD) AND (t1.proj = t2.PROJECT) AND (t1.pdli = t2.TASK) AND (t1.Department = t2.BRANCH) AND (t1.PM_Code = t2.PGM_MGR_CODE) AND (t1.Parm = t2.PARM_CODE) SET t1.PE = t2.dodpe, t1.FRC = Mid(t2.FRC,1,5), t1.FRC_Title = Mid(t2.FRC_Title,1,99), t1.PlusUp = IIf(Mid(Trim(t2.frc_title),1,2)='(C',True,False), t1.Loa_Key = t2.loa_key, t1.FGLI = t2.fgli

Thanks!

Please try below one. Since you have multiple colomns join between t1 and t2 query is big.

Expand|Select|Wrap|Line Numbers
  1. UPDATE t1
  2.    SET t1.pe =
  3.           (SELECT dodpe
  4.              FROM t2
  5.             WHERE t1.subhead = t2.subhead
  6.               AND t1.proj = t2.project
  7.               AND t1.pdli = t2.task
  8.               AND t1.department = t2.branch
  9.               AND t1.pm_code = t2.pgm_mgr_code
  10.               AND t1.parm = t2.parm_code
  11.               AND ROWNUM < 2),
  12.        t1.frc =
  13.           (SELECT SUBSTR (t2.frc, 1, 5)
  14.              FROM t2
  15.             WHERE t1.subhead = t2.subhead
  16.               AND t1.proj = t2.project
  17.               AND t1.pdli = t2.task
  18.               AND t1.department = t2.branch
  19.               AND t1.pm_code = t2.pgm_mgr_code
  20.               AND t1.parm = t2.parm_code
  21.               AND ROWNUM < 2),
  22.        t1.frc_title =
  23.           (SELECT SUBSTR (t2.frc_title, 1, 99)
  24.              FROM t2
  25.             WHERE t1.subhead = t2.subhead
  26.               AND t1.proj = t2.project
  27.               AND t1.pdli = t2.task
  28.               AND t1.department = t2.branch
  29.               AND t1.pm_code = t2.pgm_mgr_code
  30.               AND t1.parm = t2.parm_code
  31.               AND ROWNUM < 2),
  32.        t1.plusup =
  33.           (SELECT DECODE (SUBSTR (TRIM (t2.frc_title), 1, 2),
  34.                           '(C', TRUE,
  35.                           FALSE
  36.                          )
  37.              FROM t2
  38.             WHERE t1.subhead = t2.subhead
  39.               AND t1.proj = t2.project
  40.               AND t1.pdli = t2.task
  41.               AND t1.department = t2.branch
  42.               AND t1.pm_code = t2.pgm_mgr_code
  43.               AND t1.parm = t2.parm_code
  44.               AND ROWNUM < 2),
  45.        t1.loa_key =
  46.           (SELECT t2.loa_key
  47.              FROM t2
  48.             WHERE t1.subhead = t2.subhead
  49.               AND t1.proj = t2.project
  50.               AND t1.pdli = t2.task
  51.               AND t1.department = t2.branch
  52.               AND t1.pm_code = t2.pgm_mgr_code
  53.               AND t1.parm = t2.parm_code
  54.               AND ROWNUM < 2),
  55.        t1.fgli =
  56.           (SELECT t2.fgli
  57.              FROM t2
  58.             WHERE t1.subhead = t2.subhead
  59.               AND t1.proj = t2.project
  60.               AND t1.pdli = t2.task
  61.               AND t1.department = t2.branch
  62.               AND t1.pm_code = t2.pgm_mgr_code
  63.               AND t1.parm = t2.parm_code
  64.               AND ROWNUM < 2);
Reply