Advertisement
Pinkel

PBD Od Majczela

May 24th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.69 KB | None | 0 0
  1. Podaj nazwę i adres klienta o numerze 2345:
  2. SELECT Nazwa, Adres FROM `klient` WHERE NrKlienta = 2345
  3. Podaj numery i nazwy klientów „złotych”:
  4. SELECT NrKlienta, Nazwa FROM `klient` WHERE STATUS like 'złoty'
  5. Podaj numery kont założonych przed rokiem 2010:
  6. SELECT NrKOnta FROM `konto` WHERE DataOtwarcia < "2010-01-01"
  7. Podaj numery kont założonych w oddziale pko Krakow:
  8. SELECT NrKOnta FROM `konto` WHERE Oddzial LIKE "pko Krakow"
  9. Podaj numery kont założonych co najmniej 10 lat temu (*):
  10. SELECT NrKOnta FROM `konto` WHERE DataOtwarcia < DATE_SUB(CURDATE(),INTERVAL 10 YEAR)
  11. Podaj dane kont założonych w roku 2000 uporządkowane według daty nierosnąco:
  12. SELECT * FROM `konto` WHERE DataOtwarcia like "2000%" ORDER BY DataOtwarcia desc
  13. Podaj dane kont o stanie niższym niż 100 zł i dane kont o stanie wyższym niż 300 zł:
  14. SELECT * FROM `konto` WHERE Saldo < 100 OR Saldo >300
  15. Podaj dane lokat klienta 2345:
  16. SELECT * FROM `lokata` WHERE NrKlienta = 2345
  17. Podaj numery właścicieli (nr klienta) lokat typu „6m”:
  18. SELECT NrKlienta FROM `lokata` WHERE TypLokaty like "6m"
  19. Podaj numery, daty i kwoty transakcji dokonanych przez klienta 2345, uporządkowane według kwoty:
  20. SELECT NrTransakcji, Data, Kwota FROM `transakcja` WHERE NrKlienta = 2345 order by Kwota
  21. Podaj numery kont o ujemnym saldzie:
  22. SELECT NrKOnta FROM `konto` WHERE Saldo < 0
  23. Podaj typy lokat oferowanych przez bank i ich oprocentowanie, uporządkowane według czasu trwania:
  24. SELECT TypLokaty, Oprocentowanie FROM `typ_lokaty` ORDER BY CzasTrwania
  25.  
  26.  
  27. ==========================================================================================================================
  28. ==========================================================================================================================
  29.  
  30.  
  31. największą liczbę całkowitą mniejszą od: 56.8, -31.567:
  32. SELECT FLOOR(56.8), FLOOR(-31.567)
  33. najmniejszą liczbę całkowitą większą od: 56.8, -31.567:
  34. SELECT CEIL(56.8), CEIL(-31.567)
  35. resztę z dzielenia 10 przez 2, 10 przez 5, 10 przez 6:
  36. SELECT MOD(10, 2), MOD(10, 5), MOD(10, 6)
  37. 13579.2468 zaokrąglone do 2 miejsc po przecinku i obcięte do dwóch miejsc po przeciniku (różnica?):
  38. SELECT ROUND(13579.2468, 2), TRUNCATE(13579.2468, 2)
  39. ciąg będący złożeniem imienia i nazwiska (ze spacją w środku):
  40. SELECT CONCAT_WS(" ","Pan","Majczel") as Imie_Nazwisko
  41. 13579.2468 zł zaokrąglone do 2 miejsc po przecinku:
  42. SELECT ROUND("13579.2468",2)
  43. imię i nazwisko (jako dwa oddzielne słowa) z ciągu zawierającego imię i nazwisko oddzielone spacją:
  44. SELECT SUBSTRING_INDEX("Pan Majczel", " ", 1) as Imie, SUBSTRING_INDEX("Pan Majczel", " ", -1) as Nazwisko
  45. bieżącą datę i godzinę:
  46. SELECT CURRENT_DATE, CURRENT_TIME()
  47. datę 198 dnia bieżacego roku:
  48. SELECT MAKEDATE(year(CURRENT_DATE()),198)
  49. rok, miesiąc, dzień ze swojej daty urodzenia:
  50. SELECT year("1996-10-18") as ROK, MONTH("1996-10-18") AS MIESIAC, DAY("1996-10-18") AS DZIEN
  51. dzień tygodnia odpowiadający w/w dacie urodzenia:
  52. SELECT DAYOFWEEK("1996-10-18")
  53. liczbę dni od w/w daty urodzenia:
  54. SELECT DATEDIFF(CURRENT_DATE, "1996-10-18")
  55. swoje imię w postaci kodu ascii:
  56. SELECT ASCII("M"), ASCII("i"), ASCII("c"), ASCII("h"), ASCII("a"), ASCII("ł")
  57. ciąg ‘podstawy danych’ uzupełniony słowem „baz” (wynik: ‘podstawy baz danych’, sposób uzyskania wyniku powinien być ogólny, można jedynie założyć, że nowe słowo wstawiane jest po pierwszej spacji:
  58. SELECT REPLACE("Podstawy danych", " ", " baz ")
  59.  
  60. ==========================================================================================================================
  61. ==========================================================================================================================
  62.  
  63. Dla każdego typu lokaty podaj przewidywany zysk po upływie czasu jej trwania dla 1000 zł:
  64. SELECT 1000*(1+Oprocentowanie/100)^12/CzasTrwania AS PRZEWIDYWANY_ZYSK FROM `typ_lokaty`
  65. Podaj dane kont założonych w roku 2000:
  66. SELECT * FROM `konto` WHERE DataOtwarcia like "2000%"
  67. Podaj numery kont założonych co najmniej 10 lat temu
  68. SELECT NrKOnta FROM `konto` WHERE DataOtwarcia < DATE_SUB(CURDATE(),INTERVAL 10 YEAR)
  69. Podaj dane kont wprowadzając dodatkową kolumnę, w której dla kont z debetem będzie umieszczona informacja „debet”:
  70. SELECT *, if(Saldo < 0, 'DEBET', 'NIE DEBET') AS DEBET FROM `konto`
  71. Podaj dane transakcji uporządkowane według roku wykonania transakcji i kwoty nierosnąco:
  72. SELECT * FROM `transakcja` ORDER BY YEAR(Data) desc, kwota desc
  73. Podaj dane klientów uporządkowane według długości ich nazwy:
  74. SELECT * FROM klient ORDER BY length(Nazwa)
  75. Podaj dane transakcji oraz dodatkowo dla każdej z nich typ (słowo: wpłata/wypłata):
  76. SELECT *, if(kwota<0, 'Wyplata', 'Wplata') AS Typ FROM `transakcja`
  77. Podaj numery i daty założenia kont uporządkowane według roku założenia konta:
  78. SELECT NrKOnta, DataOtwarcia FROM konto order by YEAR(DataOtwarcia)
  79. Podaj dane klientów, zmieniając status każdego z nich na odpowiednik angielski, z pominięciem klientów o nieustalonym statusie:
  80. SELECT NrKlienta, Nazwa, Adres, if(status="złoty", "gold", if(status = "srebrny", "silver", if(status="zwykły",
  81. "common", null))) as "account type" from klient
  82.  
  83. ==========================================================================================================================
  84. ==========================================================================================================================
  85.  
  86. Podaj numery i nazwy klientów posiadających lokaty oraz numery ich lokat:
  87. SELECT klient.NrKlienta, Nazwa, lokata.NrLokaty FROM `klient` JOIN lokata ON klient.NrKlienta = lokata.NrKlienta
  88. Podaj nazwy klientów posiadających konto i lokatę:
  89. SELECT DISTINCT Nazwa, klient.NrKlienta FROM klient JOIN klient_konto ON klient.NrKlienta=klient_konto.NrKlienta
  90. JOIN lokata ON klient.NrKlienta = lokata.NrKlienta
  91. Podaj numery i nazwy klientów, którzy nie posiadają lokat:
  92. SELECT Nazwa, klient.NrKlienta FROM klient LEFT JOIN lokata ON lokata.NrKlienta=klient.NrKlienta where NrLokaty is
  93. NULL
  94. Podaj nazwy klientów, numery klientów i numery ich kont, uporządkowane według nazw klientów i numerów kont:
  95. SELECT Nazwa, klient.NrKlienta, NrKonta FROM `klient` JOIN klient_konto ON klient_konto.NrKlienta = klient.NrKlienta ORDER BY
  96. Nazwa, NrKonta
  97. Podaj nazwy klientów, numery klientów, numery ich kont oraz stan ich kont:
  98. SELECT Nazwa, klient_konto.NrKlienta, klient_konto.NrKonta, Saldo FROM `klient` JOIN klient_konto ON
  99. klient_konto.NrKlienta = klient.NrKlienta JOIN konto ON konto.NrKOnta = klient_konto.NrKonta
  100. Podaj numer klienta, będącego właścicielem konta z debetem:
  101. SELECT klient.NrKlienta FROM klient JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta JOIN konto ON
  102. konto.NrKOnta=klient_konto.NrKonta WHERE Saldo<0
  103. Podaj dane klientów kont o numerach: 745363, 348973, 120768:
  104. SELECT * FROM klient JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta WHERE NrKonta IN(745363, 348973, 120768)
  105. Podaj nazwy klientów oddziału pko Krakow:
  106. SELECT Nazwa FROM klient JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta JOIN konto ON
  107. konto.NrKOnta=klient_konto.NrKonta WHERE Oddzial like "pko Krakow"
  108. Podaj dane lokat typu "6m" oraz ich oprocentowanie:
  109. SELECT * FROM `lokata` JOIN typ_lokaty ON typ_lokaty.TypLokaty=lokata.TypLokaty WHERE lokata.TypLokaty like "6m"
  110. Podaj dane lokat typu „3m” oraz dane ich właścicieli:
  111. SELECT * FROM `lokata` JOIN typ_lokaty ON typ_lokaty.TypLokaty=lokata.TypLokaty JOIN klient ON
  112. klient.NrKlienta=lokata.NrKlienta WHERE lokata.TypLokaty like "3m"
  113. Podaj dane lokat oraz daty ich pierwszej zapadalności:
  114. SELECT *, DATE_ADD(DataOtwarcia, INTERVAL CzasTrwania month) AS ZAPADALNOSC FROM `lokata` JOIN typ_lokaty ON
  115. typ_lokaty.TypLokaty=lokata.TypLokaty
  116. Podaj dane transakcji dokonanych przez klienta o nazwisku Nowacki, uporządkuj je według kwoty:
  117. SELECT * FROM `transakcja` JOIN klient ON transakcja.NrKlienta=klient.NrKlienta WHERE Nazwa like "Nowacki" ORDER
  118. BY Kwota
  119. Podaj dane transakcji dokonanych przez klienta o nazwisku Nowacki, uporządkuj je według rodzaju transakcji (nie na podstawie kwoty!):
  120. SELECT *, IF(Kwota<0,"Wyplata","Wplata") AS Typ FROM transakcja JOIN klient ON
  121. transakcja.NrKlienta=klient.NrKlienta WHERE Nazwa like "Nowacki" ORDER BY Typ
  122. Podaj nazwy klientów dokonujących wpłat oraz numery kont i kwoty tych transakcji, dane uporządkuj według nazwy klienta i kwoty transakcji:
  123. SELECT Nazwa, NrKonta, Kwota FROM transakcja JOIN klient ON transakcja.NrKlienta=klient.NrKlienta WHERE Kwota>0
  124. ORDER BY Nazwa, Kwota
  125. Podaj numery kont, na których nie dokonano żadnej transakcji:
  126. SELECT * FROM konto LEFT JOIN transakcja ON transakcja.NrKonta=konto.NrKOnta WHERE transakcja.NrKOnta is NULL
  127. Podaj numery kont, na które dokonano wpłaty i nazwiska ich właściecieli:
  128. SELECT klient_konto.NrKonta, Nazwa FROM klient_konto JOIN klient ON klient_konto.NrKlienta=klient.NrKlienta JOIN
  129. transakcja ON transakcja.NrKonta=klient_konto.NrKonta WHERE Kwota > 0
  130. Podaj nazwy i numery klientów, którzy mają tylko lokaty:
  131. SELECT * FROM `lokata` LEFT JOIN klient ON klient.NrKlienta=lokata.NrKlienta LEFT JOIN klient_konto ON
  132. klient_konto.NrKlienta=klient.NrKlienta WHERE klient_konto.NrKonta is NULL and NrLokaty is not null
  133. Podaj nazwy i numery klientów, którzy mają tylko konta:
  134. SELECT Nazwa, klient_konto.NrKlienta FROM klient LEFT JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta
  135. LEFT JOIN lokata ON lokata.NrKlienta=klient_konto.NrKlienta WHERE NrLokaty is NULL and klient_konto.NrKonta is not
  136. null
  137. Podaj nazwy i numery klientów, którzy nie mają ani lokaty ani konta:
  138. SELECT Nazwa, klient.NrKlienta FROM klient LEFT JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta LEFT
  139. JOIN lokata ON lokata.NrKlienta=klient_konto.NrKlienta WHERE NrLokaty is NULL and klient_konto.NrKonta is null
  140. Dla każdej lokaty podaj datę jej pierwszej zapadalności i przewidywany zysk brutto:
  141. SELECT DATE_ADD(DataOtwarcia, INTERVAL CzasTrwania month) AS ZAPADALNOSC, 1000 (1+Oprocentowanie/100)^12/
  142. CzasTrwania AS PRZEWIDYWANY_ZYSK FROM `lokata` JOIN typ_lokaty ON typ_lokaty.TypLokaty=lokata.TypLokaty
  143.  
  144. ==========================================================================================================================
  145. ==========================================================================================================================
  146.  
  147. Nazwy klientów co mają konta:
  148. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto)
  149. Właściciele kont z debetem:
  150. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto WHERE NrKonta = any(SELECT
  151. NrKonta FROM konto WHERE Saldo < 0))
  152. Numery kont, które nie należą do żadnego klienta:
  153. SELECT NrKonta FROM konto WHERE NrKonta != all(SELECT NrKonta FROM klient_konto)
  154. Nazwy klientów co mają tylko lokaty:
  155. SELECT Nazwa FROM klient WHERE NrKlienta != all(SELECT NrKlienta FROM klient_konto) and NrKlienta = any(SELECT
  156. NrKlienta FROM lokata)
  157. Nazwy klientów odddziłu PKO Krakow co maja lokaty:
  158. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto WHERE NrKOnta = any(SELECT
  159. NrKOnta FROM konto WHERE Oddzial = "pko Krakow")) AND NrKlienta = any(SELECT NrKlienta FROM lokata)
  160. Dane lokat nalezacych do wlasciciela o numerze konta 348973:
  161. SELECT * FROM `lokata` WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto WHERE NrKonta = 348973)
  162. Nazwy właścicieli kont o stanie większym niż stan dowolnego konta Nowackiego:
  163. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto WHERE NrKonta = any(SELECT
  164. NrKonta FROM konto WHERE Saldo > any(SELECT Saldo FROM konto WHERE NrKonta = any(SELECT NrKonta FROM klient_konto
  165. WHERE NrKlienta = any(SELECT NrKlienta FROM klient WHERE Nazwa = "Nowacki")))))
  166. Nazwiska klientow co maja konto i lokate:
  167. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto) and NrKlienta = any(SELECT
  168. NrKlienta FROM lokata)
  169. Numery kont na które wpłat dokonał Nowacki w ciągu ostatnich dwóch lat:
  170. SELECT NrKonta FROM transakcja WHERE NrKlienta = any(SELECT NrKlienta FROM klient WHERE Nazwa = "Nowacki") and
  171. Data > DATE_SUB(CURDATE(),INTERVAL 2 YEAR)
  172. Typy lokat, dla ktorej nie założono żadnej lokaty:
  173. SELECT TypLokaty FROM lokata WHERE TypLokaty != all(SELECT TypLokaty FROM typ_lokaty)
  174. Nazwy właścicieli kont o stanie różniącym się od stanu konta 528772 o nie więcej niż +/- 50%:
  175. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM klient_konto WHERE NrKonta = any(SELECT
  176. NrKonta FROM konto WHERE Saldo > any(SELECT Saldo*0.5 FROM konto WHERE NrKonta = 528772) and Saldo <any(SELECT
  177. Saldo*1.5 FROM konto WHERE NrKonta = 528772))) ????????????????????????????????????????
  178. Nazwy klientow dokonujących wpłat uporządkowane według daty transakcji:
  179. SELECT Nazwa FROM klient WHERE NrKlienta = any(SELECT NrKlienta FROM transakcja WHERE Kwota > 0 ORDER BY Data)
  180. Nazwa klienta co nie dokonał żadnej transakcji:
  181. SELECT Nazwa FROM klient WHERE NrKlienta != all(SELECT NrKlienta FROM transakcja)
  182. Oprocentowanie lokat Nowaka:
  183. SELECT Oprocentowanie FROM typ_lokaty WHERE TypLokaty = any(SELECT TypLokaty FROM lokata WHERE NrKlienta =
  184. any(SELECT NrKlienta FROM klient WHERE Nazwa = "Nowak"))
  185.  
  186.  
  187.  
  188. ==========================================================================================================================
  189. ==========================================================================================================================
  190.  
  191. Dla kazdego klienta podaj liczbe jego lokat:
  192. SELECT NrKlienta, COUNT(NrKlienta) FROM lokata group by NrKlienta
  193. Podaj numery kont z saldem większym niż 10% sumy aktywów banku:
  194. SELECT NrKonta FROM konto WHERE Saldo > any(SELECT SUM(Saldo)*0.1 FROM konto)
  195. Podaj nazwisko i numer klienta co posiada najwięcej lokat:
  196. ??????????????????????????????????
  197. Liczba kont klienta nowak:
  198. SELECT COUNT(klient_konto.NrKlienta) AS liczba_kont FROM klient_konto JOIN klient ON
  199. klient_konto.NrKlienta=klient.NrKlienta WHERE Nazwa="Nowak"
  200. Nazwy oddzialow banku i liczba kont w kazdym z nich:
  201. SELECT Oddzial, COUNT(NrKOnta) FROM `konto` GROUP BY Oddzial
  202. Suma stanów kont w oddziale pko Warszawa:
  203. SELECT SUM(Saldo) FROM `konto` WHERE Oddzial = "pko Warszawa"
  204. Suma stanów kont w każdym oddziale:
  205. SELECT SUM(Saldo) FROM `konto` group by Oddzial
  206. Liczba transakcji kazdego z klientow, niemalejaco:
  207. SELECT NrKlienta, COUNT(NrKlienta) as Liczba FROM `transakcja` GROUP BY NrKlienta ORDER BY Liczba
  208. Liczba transakcji na kazdym koncie, nierosnaco:
  209. SELECT NrKonta, COUNT(NrKonta) as Liczba FROM `transakcja` GROUP BY NrKonta ORDER BY Liczba DESC
  210. Liczba wpłat i wypłat:
  211. SELECT (SELECT COUNT(Kwota) FROM transakcja WHERE KWOTA > 0) AS WPŁATA , (SELECT COUNT(Kwota) FROM transakcja
  212. WHERE KWOTA < 0) AS WYPŁATA FROM `transakcja` GROUP BY WYPŁATA
  213. Sumaryczna kwota lokat kazdego klienta:
  214. SELECT NrKlienta, SUM(Kwota) FROM `lokata` GROUP BY NrKlienta
  215. Sumatyczna kwota wpłat dokonanych przez każdego klienta:
  216. SELECT NrKlienta, SUM(Kwota) FROM transakcja WHERE Kwota > 0 GROUP BY NrKlienta
  217. Sumaryczna kwota wpłat dokonanych na każde konto:
  218. SELECT NrKonta, SUM(Kwota) FROM transakcja WHERE Kwota > 0 GROUP BY NrKonta
  219. Bilans transakcji nowaka w kazdym miesiacu w którym dokonywał transakcji:
  220. SELECT klient.NrKlienta, MONTH(Data) AS MIESIAC, SUM(KWOTA) AS SUMA FROM `transakcja` JOIN klient ON
  221. klient.NrKlienta=transakcja.NrKlienta WHERE Nazwa = "Nowak" group by miesiac
  222. Numer najstarszego konta w banku:
  223. SELECT NrKonta FROM `konto` WHERE DataOtwarcia = (SELECT MIN(DataOtwarcia) FROM konto)
  224. Nazwy oddziałów banku oraz numery najstarszego z kont każdego z tych oddziałów:
  225. SELECT Oddzial, MIN(DataOtwarcia) FROM `konto` GROUP BY Oddzial
  226. Nazwy klientow ktorzy dokonali największej liczby transakcji:
  227. ???????????????????????????????
  228. Numery kont o stanie większym od średniej stanów wszystkich kont:
  229. SELECT NrKOnta FROM `konto` WHERE SALDO > (SELECT AVG(Saldo) FROM konto)
  230. Dla każdego oddziału, podaj numery kont o stanie większym od średniej stanów kont tego oddzialu:
  231. ??????????????????????????????
  232. Podaj liczbe klientow kazdego oddzialu:
  233. ??????????????????????????????
  234. Dla kazdego klienta podaj liczbe jego kont i liste numerow kont:
  235. SELECT klient.NrKlienta, COUNT(klient_konto.NrKlienta) AS liczba_kont, GROUP_CONCAT(klient_konto.NrKonta) as
  236. Numery_kont FROM klient LEFT JOIN klient_konto ON klient_konto.NrKlienta=klient.NrKlienta GROUP BY NrKlienta
  237. Dla kazdego klienta podaj liczbe jego kont i liste numerow kont lub informacje o braku kont:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement