Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.45 KB | None | 0 0
  1. --ZAD.1
  2. --A
  3. SELECT  P.NAME,
  4.         SUM(B.ISBN) AS ILOSC,
  5.         ROUND(AVG(B.RETAIL),2) AS SREDNIA
  6. FROM PUBLISHER P
  7. INNER JOIN BOOKS B ON B.PUBID = P.PUBID
  8. GROUP BY P.NAME, P.PUBID
  9. UNION ALL
  10. SELECT  'TOTAL',
  11.         SUM(B.ISBN) AS ILOSC,
  12.         ROUND(AVG(B.RETAIL),2) AS SREDNIA
  13. FROM BOOKS B;
  14. --B    
  15. SELECT  DECODE(P.NAME,NULL,'TOTAL',P.NAME),
  16.         SUM(B.ISBN) AS ILOSC,
  17.         ROUND(AVG(B.RETAIL),2) AS SREDNIA
  18. FROM PUBLISHER P
  19. INNER JOIN BOOKS B ON B.PUBID = P.PUBID
  20. GROUP BY GROUPING SETS ((P.NAME, P.PUBID),());
  21. --C
  22. SELECT  DECODE(P.NAME,NULL,'TOTAL',P.NAME),
  23.         SUM(B.ISBN) AS ILOSC,
  24.         ROUND(AVG(B.RETAIL),2) AS SREDNIA
  25. FROM PUBLISHER P
  26. INNER JOIN BOOKS B ON B.PUBID = P.PUBID
  27. GROUP BY ROLLUP ((P.NAME, P.PUBID));
  28. --ZAD.2
  29. SELECT  C.FIRSTNAME||' '||C.LASTNAME AS CUSTOMER,
  30.         O.ORDER#,
  31.         SUM(OI.QUANTITY*B.RETAIL),
  32.         SUM(OI.QUANTITY)
  33. FROM CUSTOMERS C
  34. INNER JOIN ORDERS O ON O.CUSTOMER# = C.CUSTOMER#
  35. INNER JOIN ORDERITEMS OI ON OI.ORDER# = O.ORDER#
  36. INNER JOIN BOOKS B ON B.ISBN = OI.ISBN
  37. GROUP BY GROUPING SETS ((C.FIRSTNAME, C.LASTNAME, C.CUSTOMER#, O.ORDER#), (C.FIRSTNAME, C.LASTNAME, C.CUSTOMER#), ());
  38. --ZAD.3
  39. SELECT  B.CATEGORY,
  40.         EXTRACT(DAY FROM O.ORDERDATE) AS DZIEN,
  41.         SUM(OI.QUANTITY*(B.RETAIL-B.COST)) AS ZYSK
  42. FROM ORDERS O
  43. INNER JOIN ORDERITEMS OI ON OI.ORDER# = O.ORDER#
  44. INNER JOIN BOOKS B ON B.ISBN = OI.ISBN
  45. WHERE EXTRACT(YEAR FROM O.ORDERDATE) = 2005 AND EXTRACT(MONTH FROM O.ORDERDATE) = 4
  46. GROUP BY GROUPING SETS ((B.CATEGORY, EXTRACT(DAY FROM O.ORDERDATE)), B.CATEGORY)
  47. ORDER BY 2,1;
  48. --ZAD.4
  49. SELECT  EXTRACT(YEAR FROM O.ORDERDATE) AS ROK,
  50.         EXTRACT(MONTH FROM O.ORDERDATE) AS MIESIAC,
  51.         C.ZIP AS KOD_POCZTOWY,
  52.         SUM(OI.QUANTITY) AS ILOSC,
  53.         ROUND(AVG(OI.QUANTITY*B.RETAIL),2) AS SREDNIA
  54. FROM CUSTOMERS C
  55. INNER JOIN ORDERS O ON O.CUSTOMER# = C.CUSTOMER#
  56. INNER JOIN ORDERITEMS OI ON OI.ORDER# = O.ORDER#
  57. INNER JOIN BOOKS B ON B.ISBN = OI.ISBN
  58. GROUP BY ROLLUP (EXTRACT(YEAR FROM O.ORDERDATE), EXTRACT(MONTH FROM O.ORDERDATE), C.ZIP);
  59. --ZAD.5
  60. SELECT  TO_CHAR(O.ORDERDATE,'MM-YYYY') AS DATA,
  61.         A.FNAME||' '||A.LNAME AS AUTOR,
  62.         SUM(OI.QUANTITY) AS ILOSC
  63. FROM AUTHOR A
  64. INNER JOIN BOOKAUTHOR BA ON BA.AUTHORID = A.AUTHORID
  65. INNER JOIN BOOKS B ON B.ISBN = BA.ISBN
  66. INNER JOIN ORDERITEMS OI ON OI.ISBN = B.ISBN
  67. INNER JOIN ORDERS O ON O.ORDER# = OI.ORDER#
  68. GROUP BY CUBE (TO_CHAR(O.ORDERDATE,'MM-YYYY'), (A.FNAME, A.LNAME, A.AUTHORID));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement