Advertisement
Antropex

SQL Projekt

Dec 22nd, 2020
2,532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.29 KB | None | 0 0
  1. /*1 */
  2. SELECT *
  3. FROM Uzytkownicy
  4. ORDER BY Aktywna_Faktura
  5.  
  6. /*2 Zaznacz przedmioty w przedziale coenowym 800-1800*  malejąco */
  7. SELECT *
  8. FROM Przedmioty
  9. WHERE Cena BETWEEN 800 AND 1800
  10. ORDER BY Cena DESC
  11.  
  12. /*3 Zaznacz faktury użytkowników*/
  13. SELECT *
  14. FROM Dane_Faktur
  15. ORDER BY Id_Uzytkownika
  16. /*4zaznacz fakturowanych z miejscowości Dallas */
  17. SELECT *
  18. FROM Dane_Faktur
  19. WHERE Miejscowosc LIKE 'Dallas'
  20.  
  21. /*5zaznacz fakturowanych z Nazwiskiem Turner */
  22. SELECT *
  23. FROM Dane_Faktur
  24. WHERE Nazwisko LIKE 'Turner'
  25.  
  26. /*6Zaznacz pracowników z premią godzinową powyżej 8 zł i płacą powyżej 15 zł */
  27. SELECT *
  28. FROM Umowy
  29. WHERE Premia_Godzinowa > 8 AND Placa > 20
  30. /*7zaznacz  przedmioty z przedziału cenowego 1500 3000*/
  31. SELECT *   
  32. FROM Przedmioty
  33. WHERE Cena BETWEEN 1500 AND 3000
  34.  
  35. /*8zaznacz  przedmioty z przedziału cenowego 900 1150 z kategorii 2*/
  36. SELECT *   
  37. FROM Przedmioty
  38. WHERE (Cena BETWEEN 900 AND 1150) AND Kategoria = 2
  39.  
  40. /*9zaznacz  przedmioty z przedziału cenowego 900 1150 z kategorii 2, postoruj wedle ceny rosnąco*/
  41. SELECT *   
  42. FROM Przedmioty
  43. WHERE (Cena BETWEEN 900 AND 1150) AND Kategoria = 2
  44. ORDER BY Cena DESC
  45. /*10zaznacz  przedmioty których stan magazywnowy jest >=3 szt*/
  46. SELECT *   
  47. FROM Przedmioty
  48. WHERE Ilosc_Magazynowa <= 3
  49.  
  50. /*11Wyświetl przedmioty które po 20 % obniżce bedą mieć cenę ponizej 1500 zł */
  51. SELECT Nazwa,Cena,Cena*0.8 AS 'cena po rabacie'
  52. FROM Przedmioty
  53. WHERE (Cena*0.8) < 1500
  54.  
  55. /*12Wyświetl przedmioty które po 20 % obniżce bedą mieć cenę ponizej 1500 zł uporządkuj wedle ceny po rabacie malejąco*/
  56. SELECT Nazwa,Cena,Cena*0.8 AS 'cena po rabacie'
  57. FROM Przedmioty
  58. WHERE (Cena*0.8) < 1500
  59. ORDER BY (cena*0.8) DESC
  60.  
  61. /* 13 Zaznacz 3 najwyższe ceny produktów */
  62. SELECT Top (3) *
  63. FROM Przedmioty
  64. ORDER BY Cena DESC
  65.  
  66. /*14Zaznacz pracowników z premią godzinową powyżej 8 zł i płacą powyżej 15 zł wyświetl łączną stawkę godzinową */
  67. SELECT Placa,Premia_Godzinowa, (Premia_Godzinowa + Placa) AS 'całkowita stawka'
  68. FROM Umowy
  69. WHERE Premia_Godzinowa > 8 AND Placa > 20
  70.  
  71. /*15Zaznacz wszystkie uniklane miasta  z danych faktur*/
  72.  
  73. SELECT DISTINCT(Miejscowosc)
  74. FROM Dane_Faktur
  75.  
  76. /*16 Zaznacz losowy przedmiot */
  77. SELECT *
  78. FROM Przedmioty
  79. WHERE Id_Przedmiotu = (FLOOR(RAND()*(413+1)+5))
  80. /*17 zaznacz losowego użytkownika */
  81. SELECT Id_Uzytkownika FROM Uzytkownicy WHERE Id_Uzytkownika = (FLOOR(RAND()*(1000)+1005))
  82. SELECT Aktywna_Faktura FROM Uzytkownicy WHERE Id_Uzytkownika = (FLOOR(RAND()*(1000)+1005))
  83.  
  84.  
  85. /* 18 Zaznacz aktywne faktury uzytkowników */
  86.  
  87. SELECT Id_Faktury, Uzytkownicy.email, Uzytkownicy.Id_Uzytkownika,Dane_Faktur.Id_Uzytkownika
  88. FROM Dane_Faktur
  89. INNER JOIN Uzytkownicy ON Dane_Faktur.Id_Faktury =Uzytkownicy.Aktywna_Faktura;
  90.  
  91.  
  92. SELECT *
  93. FROM Dane_Faktur
  94. /* 19 wyświetl iniciały osób fakturowanych */
  95. SELECT Imie,Nazwisko,SUBSTRING(Imie,1,1) + SUBSTRING(Nazwisko,1,1) AS 'Iniciały'
  96. FROM Dane_Faktur
  97.  
  98. /*20 Zaznacz wszystkie zamówione przedmioty uzytkownika  o emalu massa.Vestibulum@Aliquamnisl.ca*/
  99.  
  100. SELECT Przedmioty.Nazwa,Zamowienia_Przedmioty.Rabat,Przedmioty.Cena,(Przedmioty.Cena*Zamowienia_Przedmioty.Rabat)
  101. FROM Uzytkownicy
  102. INNER JOIN Zamowienia ON Uzytkownicy.Id_Uzytkownika = Zamowienia.Id_Uzytkownika
  103. INNER JOIN Zamowienia_Przedmioty ON Zamowienia.Id_Zamowienia = Zamowienia_Przedmioty.Id_Zamowienia
  104. INNER JOIN Przedmioty ON Przedmioty.Id_Przedmiotu =Zamowienia_Przedmioty.Id_Przedmiotu
  105. WHERE email LIKE 'massa.Vestibulum@Aliquamnisl.ca'
  106.  
  107. /*21 */
  108. /* Dodaj 3 z lewej z imienia 3 z prawej z nawiska + Id_Pracownika */
  109. SELECT LEFT( Imie, 3)+RIGHT(RTRIM(Nazwisko), 3)+CAST(Id_Pracownika AS VARCHAR(20))
  110. FROM Pracownicy
  111.  
  112. /*22 */
  113. SELECT UPPER(LEFT( Imie, 3)+RIGHT(RTRIM(Nazwisko), 3)+CAST(Id_Pracownika AS VARCHAR(20)))
  114. FROM Pracownicy
  115.  
  116. /*23 Policz msc od zawarcia umowy do jej wygasniecia*/
  117. SELECT *
  118. FROM Umowy
  119.  
  120. SELECT Id_Umowy,DATEDIFF(MONTH,Data_Zawarcia, Data_Wygasniecia) AS 'msc'
  121. FROM Umowy
  122.  
  123. /*24 Policz dni od dolaczenia */
  124. SELECT * FROM Uzytkownicy
  125.  
  126. SELECT email, DATEDIFF(MONTH,Data_Dolaczenia,GETDATE()) AS 'z nami od'
  127. FROM Uzytkownicy
  128. /*25 zaznacz wszystkich użytkowników z domena .edu */
  129. SELECT * FROM Uzytkownicy
  130. WHERE email LIKE '%edu'
  131.  
  132. /*26 zaznacz wszystkich użytkowników z poczatkiem emaila du */
  133. SELECT * FROM Uzytkownicy
  134. WHERE email LIKE 'du%'
  135.  
  136. /*27 zaznacz wszystkich użytkowników z 2 lietra z przedziału G-K */
  137. SELECT email, SUBSTRING(email,2,1) AS 'druga litera'
  138. FROM Uzytkownicy
  139. WHERE SUBSTRING(email,2,1) LIKE '[G-K]'
  140.  
  141. /*28  to samo co 25, ale innym sposobem */
  142. SELECT email, SUBSTRING(email,2,1) AS 'druga litera'
  143. FROM Uzytkownicy
  144. WHERE email LIKE '_[G-K]%'-- []-reprezentuje 1 znak więc szukamy COS|ZNAK MIEDZY G-K | OBOJETNIE ILE COSIÓW
  145. /* 29 wyświetla emaile zaczynające się na A,W lub P */
  146. SELECT email
  147. FROM Uzytkownicy
  148. WHERE email LIKE '[awp]%'
  149. ORDER BY email
  150.  
  151. /* 30 Wyświetla emaile które NIE zaczynają się na A,W lub P */
  152. SELECT email
  153. FROM Uzytkownicy
  154. WHERE email NOT LIKE '[awp]%'
  155. ORDER BY email
  156.  
  157. /*31 to samo co wyżej tylko inaczej zrobione*/
  158. SELECT email
  159. FROM Uzytkownicy
  160. WHERE email LIKE '[^awp]%'
  161. ORDER BY email
  162.  
  163. /*32 Wyświetla emaile bez @*/
  164. SELECT email
  165. FROM Uzytkownicy
  166. WHERE email NOT LIKE '%@%'
  167. ORDER BY email
  168. /*33 Wyświetla Imona kończące się na e*/
  169. SELECT Imie FROM Dane_Faktur
  170. WHERE Imie LIKE '%e'
  171.  
  172. /*34 zaznacz różnice w dołączeniu między użytkownikami poprzedzającymi */
  173. DECLARE @Data_Poprzednia DATE
  174. DECLARE @USER INT
  175. SELECT @Data_Poprzednia = Data_Dolaczenia, @USER = Id_Uzytkownika
  176. FROM Uzytkownicy
  177. WHERE Id_Uzytkownika = 1561
  178.  
  179.  
  180. SELECT @Data_Poprzednia AS 'DATA POPRZEDNIEGO', @USER AS 'Id Poprzedniego', Data_dolaczenia, Id_Uzytkownika, DATEDIFF(DAY,@Data_Poprzednia,Data_dolaczenia) AS 'Różnica czasu'
  181. FROM Uzytkownicy
  182. WHERE Id_Uzytkownika = (@USER +1 )
  183.  
  184. /* 35 Ile dni dzieli uzytkowników? (Id-1) podejscie z pentla Należy uruchmoć całość wartość jest absolutna z uwagi na losowe daty podczas generowania danych testowych */
  185. CREATE TABLE #Tymczasowa (
  186.     Data_Poprzedniego DATE,
  187.     Id_Poprzedniego INT
  188. );
  189.  
  190. DECLARE @USER DATE
  191. DECLARE @IdP INT
  192. DECLARE Uzytkownicy_Kursor2 CURSOR FOR SELECT Data_Dolaczenia,Id_Uzytkownika FROM Uzytkownicy;
  193. OPEN Uzytkownicy_Kursor2
  194. FETCH NEXT FROM Uzytkownicy_Kursor2 INTO @USER,@IdP;
  195.     PRINT @USER
  196. WHILE @@FETCH_STATUS = 0
  197. BEGIN
  198.     FETCH NEXT FROM Uzytkownicy_Kursor2 INTO @USER,@IdP;
  199.     INSERT INTO #Tymczasowa (Data_Poprzedniego,Id_Poprzedniego) VALUES (@USER, @IdP)
  200. END
  201. CLOSE Uzytkownicy_Kursor2
  202. DEALLOCATE Uzytkownicy_Kursor2
  203. SELECT #Tymczasowa.Data_Poprzedniego, Uzytkownicy.Data_Dolaczenia, ABS(DATEDIFF(MONTH,Data_Poprzedniego,Uzytkownicy.Data_Dolaczenia)) AS 'Dzieli nas miesiecy'
  204. FROM #Tymczasowa
  205. INNER JOIN Uzytkownicy ON #Tymczasowa.Id_Poprzedniego = Uzytkownicy.Id_Uzytkownika+1
  206. WHERE #Tymczasowa.Data_Poprzedniego IS NOT NULL AND Uzytkownicy.Data_Dolaczenia IS NOT NULL
  207. DROP TABLE #Tymczasowa
  208. /*aż dotąd! */
  209. /* 38 A tu dużo prostrze podejśće XD */
  210. CREATE TABLE #Tymczasowa (
  211.     Data_Poprzedniego DATE,
  212.     Id_Poprzedniego INT
  213. );
  214.  
  215. INSERT INTO #Tymczasowa
  216. SELECT Data_Dolaczenia,Id_Uzytkownika FROM Uzytkownicy
  217.  
  218. SELECT #Tymczasowa.Data_Poprzedniego, Uzytkownicy.Data_Dolaczenia, ABS(DATEDIFF(MONTH,Uzytkownicy.Data_Dolaczenia,Data_Poprzedniego)) AS 'Dzieli nas miesiecy'
  219. FROM #Tymczasowa
  220. INNER JOIN Uzytkownicy ON #Tymczasowa.Id_Poprzedniego = Uzytkownicy.Id_Uzytkownika+1
  221. WHERE #Tymczasowa.Data_Poprzedniego IS NOT NULL AND Uzytkownicy.Data_Dolaczenia IS NOT NULL
  222. DROP TABLE #Tymczasowa
  223.  
  224. /*39 */
  225. SELECT Przedmioty.Id_Przedmiotu AS 'Przedmioty', Zamowienia_Przedmioty.Id_Przedmiotu AS 'zamowienia przedmioty'
  226. FROM Przedmioty
  227. LEFT JOIN Zamowienia_Przedmioty ON Przedmioty.Id_Przedmiotu = Zamowienia_Przedmioty.Id_Przedmiotu
  228. ORDER BY Przedmioty.Cena;
  229. /*40 */
  230. SELECT *
  231. FROM Przedmioty
  232. RIGHT JOIN Zamowienia_Przedmioty ON Przedmioty.Id_Przedmiotu = Zamowienia_Przedmioty.Id_Przedmiotu
  233. ORDER BY Przedmioty.Cena;
  234. /*41*/
  235. SELECT *
  236. FROM Przedmioty
  237. INNER JOIN Zamowienia_Przedmioty ON Przedmioty.Id_Przedmiotu = Zamowienia_Przedmioty.Id_Przedmiotu
  238. ORDER BY Przedmioty.Cena;
  239. /*42 No i wszystko na raz */
  240. SELECT *
  241. FROM Przedmioty
  242. FULL JOIN Zamowienia_Przedmioty ON Przedmioty.Id_Przedmiotu = Zamowienia_Przedmioty.Id_Przedmiotu
  243. FULL JOIN Zamowienia ON Zamowienia_Przedmioty.Id_Zamowienia = Zamowienia.Id_Zamowienia
  244. ORDER BY Przedmioty.Cena;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement