Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.40 KB | None | 0 0
  1. --Action_People
  2. SELECT SYS_CONNECT_BY_PATH(Name, '/') AS Path
  3. FROM Action_People WHERE APG_ID IS NOT NULL
  4. START WITH APG_ID IS NULL
  5. CONNECT BY PRIOR AP_ID = APG_ID
  6.  
  7. SELECT level, AP_ID, APG_ID, Name
  8. FROM Action_People WHERE APG_ID IS NOT NULL
  9. START WITH APG_ID IS NULL
  10. CONNECT BY PRIOR AP_ID = APG_ID
  11. ORDER BY 4
  12.  
  13. --Hobby
  14. SELECT SYS_CONNECT_BY_PATH(Hobby_Name, '/') AS Path
  15. FROM Hobby
  16. WHERE Hobby_Type_ID IS NOT NULL
  17. START WITH Hobby_Type_ID IS NULL
  18. CONNECT BY PRIOR Hobby_ID = Hobby_Type_ID
  19.  
  20. SELECT level, Hobby_ID, Hobby_Type_ID, Hobby_Name
  21. FROM Hobby
  22. --where Hobby_Type_ID is not null
  23. START WITH Hobby_Type_ID IS NULL
  24. CONNECT BY PRIOR Hobby_ID = Hobby_Type_ID
  25. ORDER BY 4
  26.  
  27. --Employer
  28. SELECT SYS_CONNECT_BY_PATH(Concat(Concat(FIRST_NAME, ' '), LAST_NAME), '/') AS Путь
  29. FROM Employer
  30. WHERE Parent_id IS NOT NULL
  31. START WITH Parent_id IS NULL
  32. CONNECT BY PRIOR Employer_id = Parent_id
  33.  
  34. SELECT SYS_CONNECT_BY_PATH(Concat(Concat(TOP.Name, ' '), Emp.LAST_NAME), '/') AS Путь
  35. FROM Employer Emp, Type_of_Person TOP
  36. WHERE Parent_id IS NOT NULL AND TOP.TOP_id = Emp.TOP_id
  37. START WITH Parent_id IS NULL
  38. CONNECT BY PRIOR Employer_id = Parent_id
  39.  
  40. SELECT level, Employer_id, Parent_id, Concat(Concat(FIRST_NAME, ' '), LAST_NAME)
  41. FROM Employer
  42. WHERE Parent_id IS NOT NULL
  43. START WITH Parent_id IS NULL
  44. CONNECT BY PRIOR Employer_id = Parent_id
  45. ORDER BY 4
  46.  
  47. --Черновые идеи с хешем
  48. SELECT ora_hash(to_clob('Некая строка для проверки')) hash_ FROM dual
  49. UNION ALL
  50. SELECT ora_hash(to_clob('Некая строка для проверки')) hash_ FROM dual
  51.  
  52. --Расширяем сознание в возможности управления иерархией
  53. SELECT employer_id, parent_id, Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Имя_Фамилия, level,
  54. CONNECT_BY_ISLEAF AS IsLeaf,
  55. PRIOR Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Parent,
  56. CONNECT_BY_ROOT Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Root
  57. FROM employer
  58. START WITH parent_id IS NULL
  59. CONNECT BY PRIOR Employer_id = Parent_id
  60. ORDER SIBLINGS BY Concat(Concat(FIRST_NAME, ' '), LAST_NAME);
  61.  
  62. --А также возможность шифровать данные
  63. SELECT EMP.EMPLOYER_ID, COALESCE(EMP.IMAGE, '(нету)') AS IMAGE, Concat(Concat(Concat(Concat(EMP.Last_NAME, ' '), EMP.First_NAME), ' '), EMP.Middle_NAME) AS FIO, AP.NAME, EMP.BIRTH_DATE, substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), 1, 4)||'******'||substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), -1, 3) AS Telephone, TOP.Name, RANK.NAME, EMP.CONT_NUMBER, substr(CAST(Emp.Password AS VARCHAR(10)), 1, 0)||'********' AS Password, Emp.PRIM, Emp.PARENT_ID FROM employer emp, action_people AP, Type_of_person TOP, RANK WHERE Emp.AP_ID = AP.AP_ID AND TOP.TOP_ID = EMP.TOP_ID AND EMP.RANK_ID = RANK.RANK_ID
  64.  
  65. --Вспоминаем путь
  66. SELECT SYS_CONNECT_BY_PATH(Concat(Concat(substr(TOP.Name, 1, 1), ' '), Emp.LAST_NAME), '/') AS Путь
  67. FROM Employer Emp, Type_of_Person TOP
  68. WHERE Parent_id IS NOT NULL AND TOP.TOP_id = Emp.TOP_id
  69. START WITH Parent_id IS NULL
  70. CONNECT BY PRIOR Employer_id = Parent_id
  71.  
  72. SELECT employer_id, parent_id, Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Имя_Фамилия, level,
  73. CONNECT_BY_ISLEAF AS IsLeaf,
  74. PRIOR Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Parent,
  75. CONNECT_BY_ROOT Concat(Concat(FIRST_NAME, ' '), LAST_NAME) AS Root
  76. FROM employer
  77. START WITH parent_id IS NULL
  78. CONNECT BY PRIOR Employer_id = Parent_id
  79. ORDER SIBLINGS BY Concat(Concat(FIRST_NAME, ' '), LAST_NAME);
  80.  
  81. --ВОТ ТЕПЕРЬ ПОШЛИ ИДЕИ НАСЧЁТ ДОСТУПА!!!
  82.  
  83. --Данные подчинённых и его - Контент-Менеджер
  84. SELECT EMP.EMPLOYER_ID, COALESCE(EMP.IMAGE, '(нету)') AS IMAGE, Concat(Concat(Concat(Concat(EMP.Last_NAME, ' '), EMP.First_NAME), ' '), EMP.Middle_NAME) AS FIO, AP.NAME, EMP.BIRTH_DATE, substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), 1, 4)||'******'||substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), -1, 3) AS Telephone, TOP.Name, RANK.NAME, EMP.CONT_NUMBER, substr(CAST(Emp.Password AS VARCHAR(10)), 1, 0)||'********' AS Password, Emp.PRIM, Emp.PARENT_ID FROM employer emp, action_people AP, Type_of_person TOP, RANK WHERE Emp.AP_ID = AP.AP_ID AND TOP.TOP_ID = EMP.TOP_ID AND EMP.RANK_ID = RANK.RANK_ID
  85. AND Level >= (SELECT level FROM employer EMP WHERE Employer_ID = 3 START WITH parent_id = (SELECT parent_id FROM Employer EMP WHERE Employer_ID = 3) CONNECT BY PRIOR Employer_id = Parent_id)
  86. AND CONNECT_BY_ROOT Employer_id = (SELECT CONNECT_BY_ROOT Employer_id AS Root FROM employer EMP WHERE Employer_ID = 3 START WITH parent_id = (SELECT parent_id FROM Employer EMP WHERE Employer_ID = 3) CONNECT BY PRIOR Employer_id = Parent_id)
  87. START WITH parent_id IN (SELECT parent_id FROM Employer EMP WHERE Employer_ID = 3)
  88. CONNECT BY PRIOR Employer_id = Parent_id
  89.  
  90. --Данные администратора (не важно, каков уровень )
  91. SELECT EMP.EMPLOYER_ID, COALESCE(EMP.IMAGE, '(нету)') AS IMAGE, Concat(Concat(Concat(Concat(EMP.Last_NAME, ' '), EMP.First_NAME), ' '), EMP.Middle_NAME) AS FIO, AP.NAME, EMP.BIRTH_DATE, substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), 1, 4)||'******'||substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), -1, 3) AS Telephone, TOP.Name, RANK.NAME, EMP.CONT_NUMBER, substr(CAST(Emp.Password AS VARCHAR(10)), 1, 0)||'********' AS Password, Emp.PRIM, Emp.PARENT_ID FROM employer emp, action_people AP, Type_of_person TOP, RANK WHERE Emp.AP_ID = AP.AP_ID AND TOP.TOP_ID = EMP.TOP_ID AND EMP.RANK_ID = RANK.RANK_ID
  92. AND CONNECT_BY_ROOT Employer_id = (SELECT CONNECT_BY_ROOT Employer_id AS Root FROM employer EMP WHERE Employer_ID = 1 START WITH parent_id IS NULL CONNECT BY PRIOR Employer_id = Parent_id)
  93. START WITH parent_id IS NULL
  94. CONNECT BY PRIOR Employer_id = Parent_id
  95.  
  96. --Для директора (ему доступны все данные)
  97. SELECT EMP.EMPLOYER_ID, COALESCE(EMP.IMAGE, '(нету)') AS IMAGE, Concat(Concat(Concat(Concat(EMP.Last_NAME, ' '), EMP.First_NAME), ' '), EMP.Middle_NAME) AS FIO, AP.NAME, EMP.BIRTH_DATE, substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), 1, 4)||'******'||substr(CAST(Emp.TELEPHONE AS VARCHAR(22)), -1, 3) AS Telephone, TOP.Name, RANK.NAME, EMP.CONT_NUMBER, substr(CAST(Emp.Password AS VARCHAR(10)), 1, 0)||'********' AS Password, Emp.PRIM, Emp.PARENT_ID FROM employer emp, action_people AP, Type_of_person TOP, RANK WHERE Emp.AP_ID = AP.AP_ID AND TOP.TOP_ID = EMP.TOP_ID AND EMP.RANK_ID = RANK.RANK_ID
  98.  
  99. --ИДЕЯ С ДРУГОЙ ТАБЛИЦЫ, которая нас интересует (для КМ)
  100.  
  101. --Statistic (От Кавина и его подчинённых данные об их статьях)
  102. SELECT DISTINCT WS.WORKSTATION_ID, WS.TITLE, WS.AUTHOR, WS.S_EMP_ID, WS.PUBLIC_DATE, WS.VIEW_COUNT, WS.PRIM
  103. FROM WORKSTATION WS, Site_Employer S_EMP, Employer EMP
  104. WHERE WS.S_EMP_id = S_EMP.S_EMP_id AND S_EMP.Employer_id = Emp.Employer_id
  105. AND Level >= (SELECT level FROM employer EMP WHERE Employer_ID = 3 START WITH parent_id = (SELECT parent_id FROM Employer EMP WHERE Employer_ID = 3) CONNECT BY PRIOR Employer_id = Parent_id)
  106. AND CONNECT_BY_ROOT EMP.Employer_id = (SELECT CONNECT_BY_ROOT EMP.Employer_id AS Root FROM employer EMP WHERE EMP.Employer_ID = 3 START WITH EMP.parent_id = (SELECT EMP.parent_id FROM Employer EMP WHERE EMP.Employer_ID = 3) CONNECT BY PRIOR EMP.Employer_id = EMP.Parent_id)
  107. START WITH EMP.parent_id IN (SELECT EMP.parent_id FROM Employer EMP WHERE EMP.Employer_ID = 3)
  108. CONNECT BY PRIOR EMP.Employer_id = EMP.Parent_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement