Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 1. število vseh neplačanih ur, ki jih je imela stranka X */
- SELECT SUM(L.TRAJANJE) AS "NEPLACANE URE"
- FROM AS_LEKCIJA L
- WHERE L.STRANKA_ID = '&X' AND placano=0;
- /* 2. s katerim avtomobilem se ustvari največ prihodka? izpiši vse, ter jih ustrezno razvrsti */
- SELECT V.VOZILO, SUM(TRAJANJE*CENA) AS PRIHODEK
- FROM AS_LEKCIJA L, AS_VOZILO V
- WHERE L.VOZILO_ID=V.VOZILO_ID
- GROUP BY V.VOZILO
- ORDER BY PRIHODEK DESC;
- /* 3. število lekcij, na katerih so stranke vozile Stoenko */
- SELECT COUNT(*) AS "LEKCIJE S STOENKO"
- FROM AS_LEKCIJA L, AS_VOZILO V
- WHERE L.VOZILO_ID=V.VOZILO_ID AND V.VOZILO='Stoenka';
- /* 4. razvrsti trenutno aktivne inštruktorje po njihovi delovni dobi padajoče */
- SELECT I.OSEBA_ID, CAST(CURRENT_DATE - I.DATUM_PRIDRUZEN AS INT) AS ST_DNI
- FROM AS_INSTRUKTOR I
- WHERE I.DATUM_ODSEL IS NULL
- ORDER BY ST_DNI DESC;
- /* 5. katere osebe imajo za inštruktorja Franceljna Novaka */
- SELECT DISTINCT O.IME, O.PRIIMEK
- FROM AS_LEKCIJA L, AS_STRANKA S, AS_OSEBA O
- WHERE S.STRANKA_ID=L.STRANKA_ID AND S.OSEBA_ID=O.OSEBA_ID AND L.INSTRUKTOR_ID = ANY (
- SELECT I.INSTRUKTOR_ID
- FROM AS_OSEBA O, AS_INSTRUKTOR I
- WHERE O.OSEBA_ID=I.OSEBA_ID AND O.IME='Francelj' AND O.PRIIMEK='Novak'
- );
- /* 6. izpiši ime in telefon strank, ki ne prihajajo iz večjih mest (poštna številka ni okrogla) */
- SELECT O.IME, O.TELEFON
- FROM AS_OSEBA O, (
- SELECT N.NASLOV_ID
- FROM AS_NASLOV N
- MINUS
- SELECT N.NASLOV_ID
- FROM AS_NASLOV N
- WHERE N.POSTNA_STEVILKA LIKE '_000' ) N
- WHERE O.NASLOV_ID=N.NASLOV_ID;
- /* 7. preštej stranke, ki so rojene v istem letu ter izračunaj koliko dni povprečno so že stranke naše avtošole */
- SELECT EXTRACT (YEAR FROM O.DATUM_ROJSTVA) AS LETNICA,
- COUNT(*) AS OSEB,
- CAST(AVG(CURRENT_DATE-S.DATUM_POSTALA_STRANKA) AS INT) AS DNI
- FROM AS_OSEBA O, AS_STRANKA S
- WHERE O.OSEBA_ID=S.STRANKA_ID
- GROUP BY EXTRACT (YEAR FROM O.DATUM_ROJSTVA);
- /* 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*/
- SELECT DISTINCT P.STRANKA_ID, P.NACIN_PLACILA
- FROM AS_PLACILO P
- WHERE P.STRANKA_ID IN (
- SELECT L.STRANKA_ID
- FROM AS_LEKCIJA L
- WHERE L.PLACANO=1
- GROUP BY L.STRANKA_ID
- HAVING COUNT(*) > 1)
- ORDER BY P.STRANKA_ID;
- /* 9. izpiši tiste lekcije, na katerih je bil inštruktor enako star kot stranka, izpiši njuna imena in letnico rojstva, */
- SELECT M.LEKCIJA_ID, EXTRACT (YEAR FROM O1.DATUM_ROJSTVA) AS LETNICA,
- O2.IME AS INSTRUKTOR, O1.IME AS STRANKA
- FROM AS_OSEBA O1, AS_OSEBA O2, (
- SELECT L.LEKCIJA_ID, S.OSEBA_ID AS STRANKA, I.OSEBA_ID AS INSTRUKTOR
- FROM AS_LEKCIJA L, AS_STRANKA S, AS_INSTRUKTOR I
- WHERE L.STRANKA_ID=S.STRANKA_ID AND L.INSTRUKTOR_ID=I.INSTRUKTOR_ID ) M
- WHERE M.STRANKA=O1.OSEBA_ID AND M.INSTRUKTOR=O2.OSEBA_ID
- AND EXTRACT (YEAR FROM O1.DATUM_ROJSTVA)=EXTRACT (YEAR FROM O2.DATUM_ROJSTVA);
- /* 10. izpiši stranke, ki so imele nadpovprečno število ur */
- SELECT O.IME, O.PRIIMEK, SUM(L.TRAJANJE) AS URE
- FROM AS_LEKCIJA L, AS_STRANKA S, AS_OSEBA O
- WHERE L.STRANKA_ID=S.STRANKA_ID AND S.STRANKA_ID=O.OSEBA_ID
- GROUP BY L.STRANKA_ID, O.IME, O.PRIIMEK
- HAVING SUM(L.TRAJANJE) > (
- SELECT AVG(SUM(L.TRAJANJE))
- FROM AS_LEKCIJA L
- GROUP BY L.STRANKA_ID
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement