simov

BP Lab 6.2 Queries

Dec 22nd, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     1. Najdi gi sifrite i iminjata na site vraboteni i imeto na pretstavata
  3.        vo koja igrale glavna uloga za koja se prodadeni bileti zza odrzuvanje
  4.        na folema scena kako redovna pretstava.
  5. */
  6.  
  7. SELECT V.V, IMEV, IMEP
  8. FROM (((VRABOTENI V JOIN ULOGI U ON V.V=U.V)
  9.        JOIN PRETSTAVI P ON U.P=P.P)
  10.        JOIN BILETI B ON B.P=P.P)
  11. WHERE U.IMA_ULOGA='glavna' AND B.STATUS='redovna' AND B.SCENA='golema';
  12.  
  13. /*
  14.     2. Najdi go akterot koj ucestvuval vo najgolem broj na pretstavi
  15. */
  16. SELECT V, IMEV
  17. FROM ULOGI NATURAL JOIN VRABOTENI
  18. GROUP BY V, IMEV
  19. HAVING COUNT(*) = (SELECT MAX(COUNT(*))
  20.                     FROM ULOGI
  21.                     GROUP BY V
  22.                     );
  23.                    
  24.  
  25. /*
  26.     3. Najdi go imeto na akterot so najvisok prosecen honorar
  27. */
  28. SELECT IMEV
  29. FROM ZARABOTUVA NATURAL JOIN VRABOTENI
  30. GROUP BY V, IMEV
  31. HAVING AVG(HONORAR) >= ALL(SELECT AVG(HONORAR)
  32.                            FROM ZARABOTUVA
  33.                            GROUP BY V
  34.                           );
  35.                          
  36. /*
  37.     3. Version 2:
  38.  
  39. SELECT IMEV
  40. FROM VRABOTENI
  41. WHERE V IN (SELECT V
  42.             FROM ZARABOTUVA
  43.             GROUP BY V
  44.             HAVING AVG(HONORAR) >= ALL(SELECT AVG(HONORAR)
  45.                                        FROM ZARABOTUVA
  46.                                        GROUP BY V
  47.                                       )  
  48.             );
  49. */
  50.            
  51.            
  52. /*
  53.     4. Da se vrati pregled na brojot na razlicni pretstavi sto se igrale posebno
  54.        za sekoj grad, sortirani po imeto na gradot.
  55. */
  56.  
  57. SELECT GRAD, COUNT(DISTINCT P)
  58. FROM BILETI NATURAL JOIN TEATRI
  59. GROUP BY GRAD
  60. ORDER BY GRAD;
  61.            
  62.  
  63. /*
  64.     5. Prikazi gi pretstavnicite za koi vkupniot profit od prodazba na bileti
  65.        e pogolem od vkupnata suma isplatena kako honorar
  66. */
  67. SELECT IMEP
  68. FROM PRETSTAVI
  69. WHERE P IN (SELECT P
  70.             FROM BILETI B
  71.             GROUP BY P
  72.             HAVING SUM(CENA*PRODADENI) > (SELECT SUM(HONORAR)
  73.                                           FROM ZARABOTUVA
  74.                                           WHERE P = B.P
  75.                                           GROUP BY P
  76.                                           )
  77. );
  78.  
  79.  
  80.  
  81. /*
  82.     Dopolnitelno 1: Prikazi gi iminjata na produktite koi ne pripagjaat vo
  83.     kategorijata parfemi, i nivnata cena e pogolema barem od eden produkt od
  84.     kategorijata parfemi.
  85. */
  86. SELECT PRODUCTNAME
  87. FROM PRODUCTS
  88. WHERE CATEGORYID NOT IN (SELECT CATEGORYID
  89.                          FROM CATEGORIES
  90.                          WHERE CATEGORYNAME='Perfumes'
  91.                          )
  92.       AND PRODUCTPRICE > ANY (SELECT CATEGORYID
  93.                          FROM CATEGORIES
  94.                          WHERE CATEGORYNAME='Perfumes'
  95.                          );
  96.                          
  97. /*
  98.     Dopolnitelno 2: Prikazi ja preststavata so najgolema posetenost.
  99. */
  100. SELECT IMEP
  101. FROM PRETSTAVI
  102. WHERE P IN (SELECT P
  103.             FROM BILETI
  104.             GROUP BY P
  105.             HAVING SUM(PRODADENI) >= ALL(SELECT SUM(PRODADENI)
  106.                                          FROM BILETI
  107.                                          GROUP BY P
  108.                                          )
  109.             );
Add Comment
Please, Sign In to add comment