Advertisement
Guest User

Untitled

a guest
May 26th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. use Przemyslaw2
  2. SELECT AVG(płaca) FROM [Przemyslaw2].[dbo].[PracZatr];
  3. CREATE VIEW sreWydz AS SELECT AVG(płaca)AS srednia,Wydz FROM [Przemyslaw2].[dbo].[PracZatr] GROUP BY Wydz;
  4. SELECT AVG(płaca),Wydz FROM [Przemyslaw2].[dbo].[PracZatr] GROUP BY Wydz;
  5. DECLARE @srednia int = 2*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]);
  6. /*SELECT @srednia;*/
  7. SET @srednia = 4*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]);
  8. SELECT @srednia;
  9.  
  10.  
  11. DECLARE @i int = 1;
  12. BEGIN tran 1
  13. /* WHILE */
  14. DECLARE @srednia int = (2*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]));
  15. WHILE (SELECT AVG(płaca) FROM [Przemyslaw2].[dbo].[PracZatr]) <=4000
  16. BEGIN
  17. UPDATE [Przemyslaw2].[dbo].[PracZatr] SET płaca = płaca*1.05;
  18.  
  19. SET @srednia = 2*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]);
  20. SELECT @srednia;
  21. Select MAX(płaca) FROM [Przemyslaw2].[dbo].[PracZatr];
  22. SELECT AVG(płaca) FROM [Przemyslaw2].[dbo].[PracZatr];
  23. IF (@srednia > (Select MAX(płaca) FROM [Przemyslaw2].[dbo].[PracZatr]))
  24. BREAK;
  25. END
  26.  
  27. CREATE VIEW PracZatr AS SELECT nazwisko, Wydz, płaca, od FROM Pracownicy join Zatrudnienie on Pracownicy.idPracownika = Zatrudnienie.Prac;
  28.  
  29. DECLARE @srednia int = (2*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]));
  30. WHILE (SELECT AVG(płaca) FROM [Przemyslaw2].[dbo].[PracZatr]) <=4000
  31. BEGIN
  32.  
  33.  
  34. SET @srednia = 2*(SELECT MAX(srednia)FROM [Przemyslaw2].[dbo].[sreWydz]);
  35. SELECT @srednia;
  36. Select MAX(płaca) FROM [Przemyslaw2].[dbo].[PracZatr];
  37. SELECT AVG(płaca) FROM [Przemyslaw2].[dbo].[PracZatr];
  38. IF (@srednia > (Select MAX(płaca) FROM [Przemyslaw2].[dbo].[PracZatr]))
  39. BREAK;
  40. END
  41.  
  42.  
  43. /* UPDATE */
  44. UPDATE [Przemyslaw2].[dbo].[PracZatr] SET od = '12/12/2018' WHERE nazwisko = 'backi';
  45. UPDATE [Przemyslaw2].[dbo].[PracZatr] SET płaca = 3000 WHERE nazwisko = 'backi';
  46.  
  47. /* UPDATE CASE */
  48. UPDATE [Przemyslaw2].[dbo].[PracZatr] SET płaca =
  49. CASE
  50. WHEN (płaca <2100) AND (Wydz = 'W1') Then płaca*1.1
  51. WHEN (DATEDIFF(day,od,GETDATE()) > 365) AND (płaca < 2300) THEN płaca*1.05 Else płaca
  52. END
  53.  
  54. /* Komantarz */
  55. SELECT płaca, nazwisko, CASE
  56. WHEN płaca < 2500 THEN 'biedak'
  57. WHEN płaca > 4000 THEN 'bogacz'
  58. ELSE 'średniak'
  59. END FROM [Przemyslaw2].[dbo].[PracZatr];
  60.  
  61.  
  62. /* CREATE TABLE*/
  63. CREATE DATABASE Konta;
  64. USE Konta;
  65. CREATE TABLE kontaBankowe (
  66. nrKonta varchar(20) primary key,
  67. stanKonta int check (stanKonta>=0)
  68. );
  69.  
  70. INSERT INTO kontaBankowe values ('1',1000);
  71. INSERT INTO kontaBankowe values ('2',2000);
  72.  
  73.  
  74. /* TRANZAKCJA */
  75. DROP PROCEDURE tranzakcja;
  76.  
  77. CREATE PROCEDURE tranzakcja
  78. AS
  79. DECLARE @il int = 30;
  80. DECLARE @konto_biez int = 1;
  81. DECLARE @konto_drugie int = 2;
  82.  
  83. BEGIN tran trans
  84. UPDATE kontaBankowe
  85. SET stanKonta=stanKonta-@il WHERE nrKonta=@konto_biez
  86. IF @@error<>0
  87. BEGIN
  88. ROLLBACK tran
  89. RETURN
  90. END
  91. UPDATE kontaBankowe
  92. SET stanKonta=stanKonta+@il WHERE nrKonta=@konto_drugie
  93. IF @@error<>0
  94. BEGIN
  95. ROLLBACK tran
  96. RETURN
  97. END
  98. COMMIT
  99. GO
  100.  
  101. EXEC tranzakcja;
  102. /* BACKUP
  103. UPDATE Zatrudnienie SET płaca = 2000 WHERE Prac = 'P1';
  104. UPDATE Zatrudnienie SET płaca = 2050 WHERE Prac = 'P3';
  105. UPDATE Zatrudnienie SET płaca = 3100 WHERE Prac = 'P4';
  106. UPDATE Zatrudnienie SET płaca = 4000 WHERE Prac = 'P2';
  107. UPDATE Zatrudnienie SET płaca = 200 WHERE Prac = 'P5';
  108. UPDATE Zatrudnienie SET płaca = 1800 WHERE Prac = 'P6';
  109. UPDATE Zatrudnienie SET płaca = 1000 WHERE Prac = 'P7';
  110. UPDATE Zatrudnienie SET płaca = 500 WHERE Prac = 'P8';
  111. UPDATE Zatrudnienie SET płaca = 100 WHERE Prac = 'P9';
  112. */
  113.  
  114. COMMIT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement