Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.19 KB | None | 0 0
  1. /* 1. število vseh neplačanih ur, ki jih je imela stranka X */
  2. SELECT SUM(L.TRAJANJE) AS "NEPLACANE URE"
  3. FROM AS_LEKCIJA L
  4. WHERE L.STRANKA_ID = '&X' AND placano=0;
  5.  
  6. /* 2. s katerim avtomobilem se ustvari največ prihodka? izpiši vse, ter jih ustrezno razvrsti */
  7. SELECT V.VOZILO, SUM(TRAJANJE*CENA) AS PRIHODEK
  8. FROM AS_LEKCIJA L, AS_VOZILO V
  9. WHERE L.VOZILO_ID=V.VOZILO_ID
  10. GROUP BY V.VOZILO
  11. ORDER BY PRIHODEK DESC;
  12.  
  13. /* 3. število lekcij, na katerih so stranke vozile Stoenko */
  14. SELECT COUNT(*) AS "LEKCIJE S STOENKO"
  15. FROM AS_LEKCIJA L, AS_VOZILO V
  16. WHERE L.VOZILO_ID=V.VOZILO_ID AND V.VOZILO='Stoenka';
  17.  
  18. /* 4. razvrsti trenutno aktivne inštruktorje po njihovi delovni dobi padajoče */
  19. SELECT I.OSEBA_ID, CAST(CURRENT_DATE - I.DATUM_PRIDRUZEN AS INT) AS ST_DNI
  20. FROM AS_INSTRUKTOR I
  21. WHERE I.DATUM_ODSEL IS NULL
  22. ORDER BY ST_DNI DESC;
  23.  
  24. /* 5. katere osebe imajo za inštruktorja Franceljna Novaka */
  25. SELECT DISTINCT O.IME, O.PRIIMEK
  26. FROM AS_LEKCIJA L, AS_STRANKA S, AS_OSEBA O
  27. WHERE S.STRANKA_ID=L.STRANKA_ID AND S.OSEBA_ID=O.OSEBA_ID AND L.INSTRUKTOR_ID = ANY (
  28.   SELECT I.INSTRUKTOR_ID
  29.   FROM AS_OSEBA O, AS_INSTRUKTOR I
  30.   WHERE O.OSEBA_ID=I.OSEBA_ID AND O.IME='Francelj' AND O.PRIIMEK='Novak'
  31. );
  32.  
  33. /* 6. izpiši ime in telefon strank, ki ne prihajajo iz večjih mest (poštna številka ni okrogla) */
  34. SELECT O.IME, O.TELEFON
  35. FROM AS_OSEBA O, (
  36.   SELECT N.NASLOV_ID
  37.   FROM AS_NASLOV N
  38.   MINUS
  39.   SELECT N.NASLOV_ID
  40.   FROM AS_NASLOV N
  41.   WHERE N.POSTNA_STEVILKA LIKE '_000' ) N
  42. WHERE O.NASLOV_ID=N.NASLOV_ID;
  43.  
  44. /* 7. preštej stranke, ki so rojene v istem letu ter izračunaj koliko dni povprečno so že stranke naše avtošole */
  45. SELECT EXTRACT (YEAR FROM O.DATUM_ROJSTVA) AS LETNICA,
  46.       COUNT(*) AS OSEB,
  47.       CAST(AVG(CURRENT_DATE-S.DATUM_POSTALA_STRANKA) AS INT) AS DNI
  48. FROM AS_OSEBA O, AS_STRANKA S
  49. WHERE O.OSEBA_ID=S.STRANKA_ID
  50. GROUP BY EXTRACT (YEAR FROM O.DATUM_ROJSTVA);
  51.  
  52. /* 8. kako oziroma na kakšen način so stranke, ki so do sedaj plačale vsaj 2 uri, plačale svoje učne ure*/
  53. SELECT DISTINCT P.STRANKA_ID, P.NACIN_PLACILA
  54. FROM AS_PLACILO P
  55. WHERE P.STRANKA_ID IN (
  56.   SELECT L.STRANKA_ID
  57.   FROM AS_LEKCIJA L
  58.   WHERE L.PLACANO=1
  59.   GROUP BY L.STRANKA_ID
  60.   HAVING COUNT(*) > 1)
  61. ORDER BY P.STRANKA_ID;
  62.  
  63. /* 9. izpiši tiste lekcije, na katerih je bil inštruktor enako star kot stranka, izpiši njuna imena in letnico rojstva, */
  64. SELECT M.LEKCIJA_ID, EXTRACT (YEAR FROM O1.DATUM_ROJSTVA) AS LETNICA,
  65.       O2.IME AS INSTRUKTOR, O1.IME AS STRANKA
  66. FROM AS_OSEBA O1, AS_OSEBA O2, (
  67.   SELECT L.LEKCIJA_ID, S.OSEBA_ID AS STRANKA, I.OSEBA_ID AS INSTRUKTOR
  68.   FROM AS_LEKCIJA L, AS_STRANKA S, AS_INSTRUKTOR I
  69.   WHERE L.STRANKA_ID=S.STRANKA_ID AND L.INSTRUKTOR_ID=I.INSTRUKTOR_ID ) M
  70. WHERE M.STRANKA=O1.OSEBA_ID AND M.INSTRUKTOR=O2.OSEBA_ID
  71.       AND  EXTRACT (YEAR FROM O1.DATUM_ROJSTVA)=EXTRACT (YEAR FROM O2.DATUM_ROJSTVA);
  72.  
  73. /* 10. izpiši stranke, ki so imele nadpovprečno število ur */
  74. SELECT O.IME, O.PRIIMEK, SUM(L.TRAJANJE) AS URE
  75. FROM AS_LEKCIJA L, AS_STRANKA S, AS_OSEBA O
  76. WHERE L.STRANKA_ID=S.STRANKA_ID AND S.STRANKA_ID=O.OSEBA_ID
  77. GROUP BY L.STRANKA_ID, O.IME, O.PRIIMEK
  78. HAVING SUM(L.TRAJANJE) > (
  79.   SELECT AVG(SUM(L.TRAJANJE))
  80.   FROM AS_LEKCIJA L
  81.   GROUP BY L.STRANKA_ID
  82. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement