Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. CREATE TABLE DEPART
  2. (
  3. ID_DEPART NUMBER(3) PRIMARY KEY,
  4. DEN_DEPART VARCHAR2(30),
  5. ID_SEF_DEP NUMBER(3)
  6. );
  7.  
  8. CREATE TABLE ANGAJATI
  9. (
  10. ID_ANG NUMBER(3),
  11. NUME VARCHAR2(30),
  12. ID_DEPART NUMBER(2),
  13. SALARIU NUMBER(7,2),
  14. FUNCTIE VARCHAR2(30),
  15. CONSTRAINT PK_ANGAJATI PRIMARY KEY (ID_ANG),
  16. CONSTRAINT FK_ANGAJATI FOREIGN KEY (ID_DEPART) REFERENCES DEPART(ID_DEPART)
  17. );
  18.  
  19. CREATE TABLE PLAFOANE
  20. (
  21. DEN_PLAFON VARCHAR2(30),
  22. SAL_MIN NUMBER(7,2),
  23. SAL_MAX NUMBER(7,2)
  24. );
  25.  
  26. INSERT INTO DEPART VALUES (1, 'HR', 10);
  27. INSERT INTO DEPART VALUES (2, 'RESEARCH', 20);
  28. INSERT INTO DEPART VALUES (3, 'IMPLEMENTATION', 30);
  29. INSERT INTO DEPART VALUES (4, 'FRECAT MENTA', 40);
  30.  
  31.  
  32. INSERT INTO ANGAJATI VALUES (10, 'BOSSINIO', 1, 99990, 'BOSS');
  33. INSERT INTO ANGAJATI VALUES (11, 'MIHAI', 1, 2, 'PROGRAMATOR');
  34. INSERT INTO ANGAJATI VALUES (12, 'ANCA', 1, 120, 'GINGER');
  35.  
  36. INSERT INTO ANGAJATI VALUES (20, 'EMI', 2, 990, 'BOSS');
  37. INSERT INTO ANGAJATI VALUES (21, 'ALEX', 2, 720, 'PROGRAMATOR');
  38. INSERT INTO ANGAJATI VALUES (22, 'ALIN', 2, 4420, 'PROGRAMATOR');
  39.  
  40. INSERT INTO ANGAJATI VALUES (30, 'BOSSULTAN', 3, 99990, 'BOSS');
  41. INSERT INTO ANGAJATI VALUES (31, 'ANDREEA', 3, 80, 'MENAJERA');
  42. INSERT INTO ANGAJATI VALUES (32, 'FLORICA', 3, 9900, 'SECRETARA');
  43.  
  44. INSERT INTO PLAFOANE VALUES('PLAFON1', 1, 5000);
  45. INSERT INTO PLAFOANE VALUES('PLAFON2', 5001, 99999);
  46.  
  47. alter table angajati
  48. add
  49. (bonus number(7,2));
  50.  
  51. update angajati
  52. set bonus = salariu * 0.5
  53. where
  54. mod(id_ang,2) = 0;
  55.  
  56. --1.cate zile au mai ramas pana pe 28 aprilie (paste) -> nr intreg
  57. --2. sa se citeasca o denumire departament si sa se afiseze toti angajatii care nu fac parte din
  58. -- acel departament afisand: nume, venit (sal+bonus), den_depart, den plafon salarial
  59. --3. sa se selecteze de la tastatura un nume de angajat si sa se afiseze toti angajatii care castiga
  60. -- mai mult decat seful sau ( venit > venit sef), afisare: nume, venit, nume_dep
  61. --4. to_char, round, last_day, next_day
  62.  
  63. --1.
  64. select round(to_date('28-APR-19', 'dd-mm-yyyy') - to_date(sysdate, 'dd-mm-yyyy'))
  65. from dual;
  66.  
  67.  
  68. --2.
  69.  
  70. SELECT A.NUME, round(A.SALARIU + nvl(A.BONUS, 0)), D1.DEN_DEPART, P.DEN_PLAFON
  71. FROM ANGAJATI A, DEPART D, PLAFOANE P, DEPART D1
  72. WHERE
  73. A.ID_DEPART != D.ID_DEPART
  74. AND
  75. D.DEN_DEPART = '&DEP'
  76. AND
  77. A.SALARIU >= P.SAL_MIN
  78. AND
  79. A.SALARIU <= P.SAL_MAX
  80. AND
  81. D1.ID_DEPART = A.ID_DEPART;
  82.  
  83. --3.
  84. SELECT A2.NUME, round(A2.SALARIU + nvl(A2.BONUS, 0)), D2.DEN_DEPART
  85. FROM ANGAJATI A, ANGAJATI A2, ANGAJATI S, DEPART D, DEPART D2
  86. WHERE
  87. round(A2.SALARIU + nvl(A2.BONUS, 0)) > round(S.SALARIU + nvl(S.BONUS, 0))
  88. AND
  89. A.NUME='&NUME'
  90. AND
  91. A.ID_DEPART = D.ID_DEPART
  92. AND
  93. D.ID_SEF_DEP = S.ID_ANG
  94. AND
  95. D2.ID_DEPART = A2.ID_DEPART;
  96.  
  97. --4.
  98. select last_day('28-APR-2019') from dual;
  99. select NEXT_DAY('24-MAR-2014', 'MONDAY') from dual;
  100. select round(8.89) from dual;
  101. select to_char(sysdate, 'YYYY-MM-DD') from dual;
  102.  
  103.  
  104.  
  105. DROP TABLE PLAFOANE;
  106. DROP TABLE ANGAJATI;
  107. DROP TABLE DEPART;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement