Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. create table fsecure(
  2. userid varchar(100),
  3. f_element varchar(6)
  4. );
  5.  
  6. REM INSERTING into FSECURE
  7. SET DEFINE OFF;
  8. Insert into FSECURE (USERID,F_ELEMENT) values ('FFA','140');
  9. Insert into FSECURE (USERID,F_ELEMENT) values ('FFA','280');
  10. Insert into FSECURE (USERID,F_ELEMENT) values ('GGA','202118');
  11. Insert into FSECURE (USERID,F_ELEMENT) values ('GGA','140');
  12. Insert into FSECURE (USERID,F_ELEMENT) values ('RFA','202116');
  13.  
  14.  
  15.  
  16. CREATE TABLE "FVAL"
  17. ( "FUND" VARCHAR2(6 ),
  18. "FUND_PRED" VARCHAR2(6)
  19. )
  20.  
  21. REM INSERTING into FVAL
  22. SET DEFINE OFF;
  23. Insert into FVAL (FUND,FUND_PRED) values ('140',null);
  24. Insert into FVAL (FUND,FUND_PRED) values ('280',null);
  25. Insert into FVAL (FUND,FUND_PRED) values ('2000','140');
  26. Insert into FVAL (FUND,FUND_PRED) values ('20001','2000');
  27. Insert into FVAL (FUND,FUND_PRED) values ('20002','2000');
  28. Insert into FVAL (FUND,FUND_PRED) values ('20003','2000');
  29. Insert into FVAL (FUND,FUND_PRED) values ('202118','2000');
  30. Insert into FVAL (FUND,FUND_PRED) values ('2800','280');
  31. Insert into FVAL (FUND,FUND_PRED) values ('280001','2800');
  32. Insert into FVAL (FUND,FUND_PRED) values ('280002','2800');
  33. Insert into FVAL (FUND,FUND_PRED) values ('280003','2800');
  34. Insert into FVAL (FUND,FUND_PRED) values ('280004','2800');
  35.  
  36. SELECT F.FUND
  37. FROM FVAL F
  38. CONNECT BY PRIOR F.FUND = F.FUND_PRED
  39. START WITH F.FUND IN ( SELECT F_ELEMENT FROM FSECURE WHERE USERID = 'FFA' );
  40.  
  41. "FUND" "'FFA'"
  42. "140" "FFA"
  43. "2000" "FFA"
  44. "20001" "FFA"
  45. "20002" "FFA"
  46. "20003" "FFA"
  47. "202118" "FFA"
  48. "280" "FFA"
  49. "2800" "FFA"
  50. "280001" "FFA"
  51. "280002" "FFA"
  52. "280003" "FFA"
  53. "280004" "FFA"
  54.  
  55. SELECT s.USERID, hier_f.FUND
  56. FROM FSECURE s
  57. JOIN ( SELECT F.FUND, connect_by_root(F.FUND) as root_fund
  58. FROM FVAL F
  59. CONNECT BY PRIOR F.FUND = F.FUND_PRED
  60. START WITH F.FUND IN ( SELECT F_ELEMENT FROM FSECURE)) hier_f
  61. on s.F_ELEMENT = hier_f.root_fund
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement