venko100janov

2019/20/Зимски - Банки - Серија 4 - Индивидуални задачи

Jan 21st, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --SQL_IND04_01
  2. --Да се најде највисокиот износ што се сретнува во некоја трансакција.
  3. --Резултантна шема: (MAKSIZNOS)
  4.  
  5. select t.iznos MAKSIZNOS from transakcii as t
  6. order by t.iznos desc
  7. limit 1
  8.  
  9.  
  10.  
  11. --SQL_IND04_02
  12. --Врз основа на претходното прашање да се најде трансакцијата во која се среќава највисокиот износ.
  13. --Резултантна шема: (BR_SMETKA, BR_TRANSAKCIJA)
  14.  
  15. select t.br_smetka, t.br_transakcija from transakcii as t
  16. where t.iznos=(
  17.     select max(tr.iznos) from transakcii as tr
  18. )
  19.  
  20.  
  21.  
  22. --SQL_IND04_03
  23. --За секоја банка да се излистаат податоци за банката, за нејзините сметки (ако ги има) и за трансакциите во тие сметки (ако ги има)
  24. --Резултантна шема: (ID_BANKA, NAZIV_BANKA, BR_SMETKA, BR_TRANSAKCIJA, IZNOS)
  25.  
  26. select b.id_banka, b.naziv_banka, s.br_smetka, tr.br_transakcija, tr.iznos
  27. from banki as b
  28. left outer join smetki as s on s.id_banka=b.id_banka
  29. left outer join transakcii as tr on tr.br_smetka=s.br_smetka
  30.  
  31.  
  32.  
  33. --SQL_IND04_04
  34. --Врз основа на претходното, за секоја банка да се најде највисокиот износ на трансакција на било која од нејзините сметки
  35. --Резултантна шема: (ID_BANKA, NAZIV_BANKA, MAKSIZNOS)
  36.  
  37. select b.id_banka, b.naziv_banka, max(tr.iznos) MAKSIZNOS from banki as b
  38. left outer join smetki as s on s.id_banka=b.id_banka
  39. left outer join transakcii as tr on tr.br_smetka=s.br_smetka
  40. group by b.id_banka
  41.  
  42.  
  43.  
  44. --SQL_IND04_05
  45. --За секоја банка да се излистаат податоци за банката,
  46. --за нејзините сметки (ако ги има) и за трансакциите на тие сметки (ако ги има),
  47. --како и податоци за одговорниот кој ја реализирал трансакцијата (ако има таков).
  48. --Резултантна шема: (ID_BANKA, NAZIV_BANKA, BR_SMETKA, BR_TRANSAKCIJA, IZNOS, IME_VRABOTEN)
  49.  
  50. select
  51.     (b.id_banka) ID_BANKA,
  52.     (b.naziv_banka) NAZIV_BANKA,
  53.     (s.br_smetka) BR_SMETKA,
  54.     (t.br_transakcija) BR_TRANSAKCIJA,
  55.     (t.iznos) IZNOS,
  56.     (
  57.         select v.ime_vraboten from vraboteni as v
  58.         inner join odgovoren as o on o.id_vraboten = v.id_vraboten and o.id_banka = v.id_banka
  59.         where o.br_smetka = s.br_smetka and o.br_transakcija = t.br_transakcija
  60.     ) IME_VRABOTEN
  61. from banki as b
  62. left outer join smetki as s on s.id_banka = b.id_banka
  63. left outer join transakcii as t on t.br_smetka = s.br_smetka
  64.  
  65.  
  66.  
  67. --SQL_IND04_06
  68. --Врз основа на претходните две, за секоја банка,
  69. --да се најде името/њата на одговорниот/ите на највисоката/е трансакција/и
  70. --на сметки од таа банка (доколку воопшто има сметки и трансакции и има нивен одговорен).
  71. --Резултантна шема: (NAZIV_BANKA, IME_VRABOTEN)
  72.  
  73. select b1.naziv_banka, v1.ime_vraboten from banki as b1
  74. left outer join
  75. (
  76.     select maks.id_banka, svb.br_smetka, svb.br_transakcija from
  77.     (
  78.         select b2.id_banka, max(t2.iznos) from banki as b2
  79.         inner join smetki as s2 on s2.id_banka = b2.id_banka
  80.         inner join transakcii as t2 on t2.br_smetka = s2.br_smetka
  81.         group by b2.id_banka
  82.     ) as maks (id_banka,maks)
  83.     inner join
  84.     (
  85.         select s2.id_banka, t2.br_smetka, t2.br_transakcija, t2.iznos from smetki as s2
  86.         inner join transakcii as t2
  87.         on t2.br_smetka = s2.br_smetka
  88.     ) as svb
  89.     on maks.id_banka = svb.id_banka and maks.maks = svb.iznos
  90. ) as bt on bt.id_banka = b1.id_banka
  91. left outer join
  92. odgovoren as o1 on (o1.br_smetka,o1.br_transakcija) = (bt.br_smetka,bt.br_transakcija)
  93. left outer join vraboteni as v1 on (v1.id_banka,v1.id_vraboten) = (bt.id_banka,o1.id_vraboten)
Add Comment
Please, Sign In to add comment