Advertisement
Antropex

Untitled

Jan 5th, 2021
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.28 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 */
  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