S_Madanska

14MASTERS

Feb 14th, 2021 (edited)
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 21.64 KB | None | 0 0
  1. --use DATABASE_NAME
  2. --------------------------------------------------------------------------------
  3. /*Задача 3-2.
  4.     Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
  5.     продукт с идентификатор 2254 в поръчка с идентификатор 2354.*/
  6.    
  7.     --ПРОВЕРЯВАМЕ ПРЕДИ
  8.      SELECT * FROM ORDER_ITEMS
  9.  
  10.     --ПОРОМЯНА
  11.      UPDATE ORDER_ITEMS
  12.      SET UNIT_PRICE *= 0.95, QUANTITY += 2
  13.      WHERE ORDER_ID = 2354 AND PRODUCT_ID= 2254
  14.  
  15.      --ПРОВЕРЯВАМЕ СЛЕД
  16.      SELECT * FROM ORDER_ITEMS
  17. --------------------------------------------------------------------------------
  18. --Задача 3-3.
  19.     --Да се изтрие служител с идентификатор 183.
  20.     --ПРОВЕРЯВАМЕ ПРЕДИ
  21.     SELECT * FROM EMPLOYEES
  22.  
  23.     --ИЗТРИВАНЕ
  24.     DELETE FROM EMPLOYEES
  25.     WHERE  EMPLOYEE_ID = 183
  26.  
  27.     --ПРОВЕРЯВАМЕ СЛЕД
  28.     SELECT * FROM EMPLOYEES
  29. -------------------------------------------------------------------------------------------
  30. --Пример 4-1.
  31.     --Да се изведат имената, датите на назначаване и заплатите на всички служители.
  32.     SELECT FNAME, LNAME, HIRE_DATE, SALARY
  33.     FROM EMPLOYEES
  34. --------------------------------------------------------------------------------
  35. /*Пример 4-2.
  36.     Да се изведат всички данни за продуктите, с цена по-голяма от 2000. Резултатът
  37.     нека бъде подреден по цена на продукт възходящо.*/
  38.  
  39.     --НЕКА ВИДИМ ДАЛИ ВСИЧКО ОТ КОЕТО СЕ НУЖДАЕМ Е В PRODUCTS
  40.     SELECT * FROM PRODUCTS
  41.  
  42.     SELECT *
  43.     FROM PRODUCTS
  44.     WHERE PRICE > 2000
  45.     ORDER BY PRICE ASC  ---DESC              --ПОДРЕДИ/СОРТИРАЙ ПО
  46.  --------------------------------------------------------------------------------
  47. --Пример 4-3.
  48.     --Да се изведе броя на всички служители.
  49.     SELECT COUNT(EMPLOYEE_ID)   --- AS [COUNT EMP] -  ПОСТАВЯ ИМЕ НА КОЛОНАТА
  50.     FROM EMPLOYEES
  51.  --------------------------------------------------------------------------------
  52. --Пример 4-4.
  53.     --Да се изведе броя служители, групирани по отдела, в който работят.
  54.  
  55.     SELECT COUNT(EMPLOYEE_ID), DEPARTMENT_ID
  56.     FROM EMPLOYEES       ---Column 'DEPARTMENT_ID' is invalid in the select list because it is not contained in either an aggregate function or
  57.                          --- the GROUP BY clause.
  58.     GROUP BY DEPARTMENT_ID
  59.  
  60. ---------------------------------------------------------------------------------
  61. --4.2.1. Задачи
  62. --Задача 4-1.
  63.     --Да се изведат имената, заплатите и идентификаторите на длъжностите на
  64.     --служителите, работещи в отдели 50 и 80.
  65.     --Резултатът да е подреден по фамилия на служител във възходящ ред.
  66.  
  67.  SELECT FNAME, LNAME, SALARY, JOB_ID
  68.  FROM EMPLOYEES
  69.  WHERE DEPARTMENT_ID =50 OR DEPARTMENT_ID=80
  70.  ORDER BY LNAME ASC
  71.  
  72.  --SELECT ......
  73.  --FROM..........
  74.  --WHERE ...........
  75.  --GROUP BY...........
  76.  --ORDER BY......ASC/DESC
  77.  
  78. --Задача 4-2.
  79.     --Да се изведат общата сума на заплатите и броя служители в отдел 60.
  80.  SELECT SUM(SALARY)           AS SALARIES,
  81.         COUNT(EMPLOYEE_ID)    AS COUNT_E
  82.  FROM EMPLOYEES
  83.  WHERE DEPARTMENT_ID = 60
  84.  
  85.  
  86. --Задача 4-3.
  87.     --За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
  88.     --поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.
  89.  SELECT ORDER_ID, SUM(UNIT_PRICE*QUANTITY) AS TOTAL
  90.  FROM ORDER_ITEMS
  91.  GROUP BY ORDER_ID
  92.  ORDER BY 2 DESC
  93.  
  94.  
  95. -------------------------------------Set operators-----------------------------------------
  96. ---------------------------------------UNION ------------------------------------------
  97. /*Резултатните набори, които се обединяват, трябва да отговарят на следните условия:
  98. -Всяка заявка в оператора UNION трябва да има еднакъв брой колони;
  99. -Колоните трябва да имат съвместими типове от данни;
  100. -В целия израз може да присъства само една клауза ORDER BY накрая, сортираща обединения резултат.
  101. */
  102.  
  103. --Пример 4-5.
  104.     --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  105.  
  106.      SELECT COUNTRY_ID FROM CUSTOMERS
  107.      UNION
  108.      SELECT COUNTRY_ID FROM DEPARTMENTS
  109.  
  110. --Пример 4-6.
  111.     --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  112.     --Нека в резултатния набор участват и дублиращите се записи.
  113.      SELECT COUNTRY_ID FROM CUSTOMERS
  114.      UNION ALL
  115.      SELECT COUNTRY_ID FROM DEPARTMENTS
  116.  
  117. /*
  118. 4.3.1. Задачи
  119. Задача 4-4.
  120.     Да се изведат всички малки имена на клиенти и служители с евентуалните
  121.     повторения, сортирани в низходящ ред по име. */
  122.     SELECT FNAME FROM CUSTOMERS
  123.     UNION ALL
  124.     SELECT FNAME FROM EMPLOYEES
  125.     ORDER BY FNAME DESC
  126.  
  127.  
  128. /*Задача 4-5.
  129.     Да се изведат име и фамилия на клиенти и служители без повторения, а като
  130.     трета колона за клиентите да се използва израз, генериращ низа
  131.     „Клиент (<идентификатор>)“, за служителите – „Служител (<идентификатор>)“. */
  132.  
  133.     SELECT FNAME, LNAME , 'Клиент (' + COUNTRY_ID + ')' AS ID
  134.     FROM CUSTOMERS
  135.     UNION
  136.     SELECT FNAME, LNAME , 'Служител (' + CAST(DEPARTMENT_ID AS VARCHAR) + ')'      -- ТИПОВО ТРЯБВА ДА СА СЪВМЕСТИМИ, ЗАТОВА CAST()
  137.     FROM EMPLOYEES
  138.  
  139.     --CAST(..... AS VARCHAR)
  140.     --CONVERT(DATE, ......., 105)
  141.  
  142.  
  143. ----------------------------------INTERSECT(сечение)---------------------------------------
  144. /*резултата съдържа общите за двата резултатни набора редове, без дубликати.
  145. условия:
  146.      -Броят на колоните във всички заявки трябва да бъде еднакъв;
  147.      -Колоните трябва да бъдат от съвместими типове от данни.
  148.  
  149. Пример 4-7.
  150.     Да се изведат id на държавите, в които има клиенти и отдели на фирмата едновременно.
  151. */
  152.     SELECT COUNTRY_ID FROM CUSTOMERS
  153.     INTERSECT
  154.     SELECT COUNTRY_ID FROM DEPARTMENTS
  155.  
  156.  
  157. --Задача 4-6.
  158. --  Да се изведат общите собствени имена на клиенти и служители.
  159.  
  160.     SELECT FNAME FROM CUSTOMERS
  161.     INTERSECT
  162.     SELECT FNAME FROM EMPLOYEES
  163.  
  164. ----------------------------------EXCEPT---------------------------------------------------
  165. /*връща редовете, върнати от първата заявка, които не се срещат измежду редове от втората.
  166. условия:
  167.     -Броят на колоните във двете заявки трябва да бъде еднакъв;
  168.     -Колоните трябва да бъдат от съвместими типове от данни. */
  169.  
  170. --Пример 4-8.
  171. --  Изведи id на държавите, в които има клиенти и в същото време няма отдели на фирмата.
  172.     SELECT COUNTRY_ID FROM CUSTOMERS
  173.     EXCEPT
  174.     SELECT COUNTRY_ID FROM DEPARTMENTS
  175.  
  176.     SELECT DISTINCT COUNTRY_ID
  177.     FROM CUSTOMERS
  178.     WHERE COUNTRY_ID NOT IN (SELECT COUNTRY_ID FROM DEPARTMENTS)
  179.  
  180.  
  181. /*4.5.1. Задачи
  182. Задача 4-7.
  183.     Да се изведат собствени имена на клиенти, които не се срещат сред тези на служители.*/
  184.     SELECT FNAME FROM CUSTOMERS
  185.     EXCEPT
  186.     SELECT FNAME FROM EMPLOYEES
  187.  
  188. -------------------------------------------------------------------------------------------
  189. ------------------------------------ JOIN -------------------------------------------------
  190. --JOIN се използва за извличане на данни от две или повече таблици, като редовете им се
  191. --комбинират чрез логическа връзка между таблиците, която може да бъде във FROM или WHERE.
  192. --Обикновено тази връзка е първичен/външен ключ, но не задължително.
  193.  
  194. -------------------------------------INNER JOIN или просто JOIN------------------------------------
  195. --Извеждат редовете от две/повече таблици, които имат съвпадащи стойности в колоните,
  196. --посочени в условието за сравнение.
  197.  
  198.  
  199. --Пример 4-10.
  200. --  Да се изведат държавите и регионите, в които се намират.
  201.  
  202. SELECT * FROM COUNTRIES  --29
  203. SELECT * FROM REGIONS  --6
  204.  
  205. SELECT *
  206. FROM COUNTRIES JOIN REGIONS
  207. ON COUNTRIES.REGION_ID=REGIONS.REGION_ID  --27
  208.  
  209. SELECT *
  210. FROM COUNTRIES, REGIONS
  211. WHERE  COUNTRIES.REGION_ID=REGIONS.REGION_ID  --27
  212.  
  213. --INNER JOIN
  214. --SELECT * FROM ..... , ..... WHERE
  215. --SELECT * FROM ..... JOIN .... ON
  216.  
  217. -----------------------------------------------
  218. SELECT *
  219. FROM COUNTRIES LEFT JOIN REGIONS
  220. ON COUNTRIES.REGION_ID=REGIONS.REGION_ID  --29
  221.  
  222. SELECT *
  223. FROM REGIONS LEFT JOIN COUNTRIES
  224. ON COUNTRIES.REGION_ID=REGIONS.REGION_ID  
  225.  
  226. SELECT *
  227. FROM COUNTRIES RIGHT JOIN REGIONS
  228. ON COUNTRIES.REGION_ID=REGIONS.REGION_ID --27+1
  229.  
  230. SELECT *
  231. FROM COUNTRIES FULL JOIN REGIONS
  232. ON COUNTRIES.REGION_ID=REGIONS.REGION_ID  --30
  233.  
  234.  
  235. --Пример 4-11.
  236. --  Изведи имена на клиенти, имена на държавите от които са, и имена на регионите на държавите.
  237.  SELECT * FROM CUSTOMERS
  238.  SELECT * FROM REGIONS
  239.  SELECT * FROM COUNTRIES
  240.  
  241.  SELECT REGIONS.NAME, COUNTRIES.NAME, CUSTOMERS.FNAME, CUSTOMERS.LNAME
  242.  FROM CUSTOMERS, COUNTRIES, REGIONS
  243.  WHERE CUSTOMERS.COUNTRY_ID=COUNTRIES.COUNTRY_ID AND REGIONS.REGION_ID=COUNTRIES.REGION_ID
  244.  
  245.  
  246. -------------------------------------Видове OUTER JOIN--------------------------------------------
  247.  
  248. --Пример 4-12.
  249. --  Да се изведат регионите и държавите, които се намират в тях. Резултатният
  250. --  набор да включва и регионите, в които няма въведени държави.
  251.  
  252.  SELECT *
  253.  FROM REGIONS LEFT JOIN COUNTRIES
  254.  ON REGIONS.REGION_ID=COUNTRIES.REGION_ID
  255.  
  256. --Пример 4-13.
  257. --  Да се изведат държавите и регионите, в които се намират.
  258. --  Резултатния набор да включва държавите, за които няма въведен регион.
  259.  
  260.  SELECT *
  261.  FROM REGIONS R RIGHT JOIN COUNTRIES C
  262.  ON R.REGION_ID=C.REGION_ID
  263.  
  264. /*Пример 4-14.
  265.     Да се изведат държавите и регионите, в които се намират.
  266.     Резултатния набор да включва държавите, за които няма въведен регион и регионите,
  267.     за които няма въведени държави.*/
  268.  
  269.  SELECT *
  270.  FROM REGIONS R FULL JOIN COUNTRIES C
  271.  ON R.REGION_ID=C.REGION_ID
  272.  
  273.  
  274. /*----------------------------4.6.6. Други JOIN вариации------------------------------
  275.  
  276. Пример 4-15. --EQUI
  277.     Да се изведат държавите и регионите, в които се намират.*/
  278.     SELECT * FROM REGIONS R,  COUNTRIES C
  279.     WHERE R.REGION_ID=C.REGION_ID
  280.  
  281. /*Пример 4-16.
  282.     Да се изведат отделите, в които има назначени служители.*/
  283.     SELECT * FROM EMPLOYEES
  284.     SELECT * FROM DEPARTMENTS
  285.    
  286.     SELECT *
  287.     FROM EMPLOYEES E JOIN DEPARTMENTS D
  288.     ON E.DEPARTMENT_ID=D.DEPARTMENT_ID
  289.  
  290.  
  291.     --SEMI JOIN
  292.     --IN / EXISTS
  293.     SELECT *
  294.     FROM DEPARTMENTS
  295.     WHERE DEPARTMENT_ID IN (SELECT DEPARTMENT_ID FROM EMPLOYEES)
  296.    
  297.  
  298.  
  299. --Пример 4-17.
  300. --  Да се изведат имената на клиентите, които все още не са правили поръчки.
  301.  
  302. SELECT *
  303. FROM CUSTOMERS C JOIN ORDERS O
  304. ON C.CUSTOMER_ID=O.CUSTOMER_ID
  305.  
  306. --ANTI JOIN
  307. SELECT FNAME, LNAME
  308. FROM CUSTOMERS
  309. WHERE CUSTOMER_ID NOT IN(SELECT CUSTOMER_ID FROM ORDERS)
  310.  
  311. SELECT FNAME, LNAME
  312. FROM CUSTOMERS
  313. WHERE NOT EXISTS (SELECT * FROM ORDERS WHERE CUSTOMERS.CUSTOMER_ID=ORDERS.CUSTOMER_ID)
  314.  
  315.  
  316. --Пример 4-18.
  317. --  Да се изведат комбинациите от всички региони и държави, сортирани по име на държава.
  318.  
  319.  --4
  320.  --6
  321.  --4X6
  322.  
  323.  SELECT * FROM REGIONS     --6
  324.  SELECT * FROM COUNTRIES  --29
  325.  
  326.  SELECT * FROM REGIONS,  COUNTRIES   --174
  327.  
  328.  SELECT * FROM REGIONS CROSS JOIN  COUNTRIES
  329.  
  330. --4.6.7. Задачи
  331.  
  332. --Задача 4-8.
  333. --  Извлечи идентификатори, дати на поръчките и имена на служители, които са ги обработили.
  334. SELECT ORDER_ID, O.ORDER_DATE, E.FNAME, E.LNAME
  335. FROM ORDERS O JOIN EMPLOYEES E
  336. ON E.EMPLOYEE_ID=O.EMPLOYEE_ID
  337.  
  338.  
  339. --Задача 4-9.
  340. --  Да се изведат имената на всички клиенти и id на поръчките им.
  341. --  В резултатния набор да участват и клиентите, които все още не са правили поръчки.
  342. SELECT C.FNAME, C.LNAME, O.ORDER_ID
  343. FROM CUSTOMERS C LEFT JOIN ORDERS O
  344. ON O.CUSTOMER_ID=C.CUSTOMER_ID
  345.  
  346.  
  347. --Задача 4-10.
  348. --  Да се изведат имената на продуктите, които не са поръчвани до момента.
  349. SELECT * FROM PRODUCTS
  350. SELECT * FROM ORDER_ITEMS
  351.  
  352. SELECT NAME
  353. FROM PRODUCTS
  354. WHERE PRODUCT_ID NOT IN (SELECT PRODUCT_ID FROM ORDER_ITEMS)
  355.  
  356. SELECT NAME
  357. FROM PRODUCTS
  358. WHERE NOT EXISTS ( SELECT PRODUCT_ID
  359.                     FROM ORDER_ITEMS
  360.                     WHERE ORDER_ITEMS.PRODUCT_ID=PRODUCTS.PRODUCT_ID)
  361.  
  362. SELECT PRODUCT_ID FROM PRODUCTS
  363. EXCEPT
  364. SELECT PRODUCT_ID FROM ORDER_ITEMS
  365.  
  366.  
  367. --Задача 4-11.
  368. --  Да се изведат имената на всички клиенти, които са от n държави в регион „Западна Европа“
  369. --INNER JOIN
  370.  
  371. SELECT CU.FNAME, CU.LNAME, CO.NAME, RE.NAME
  372. FROM CUSTOMERS CU, COUNTRIES CO, REGIONS RE
  373. WHERE RE.REGION_ID= CO.REGION_ID
  374.         AND CO.COUNTRY_ID=CU.COUNTRY_ID
  375.         AND RE.NAME = 'Западна Европа'
  376.  
  377.  
  378. -----------------------------------------------------------------------------------------
  379. ---------------------------------4.7.1. TOP ---------------------------------------------
  380. ---- TOP връща първите N реда в неопределен ред, за желаната подредба използваме ORDER BY!
  381.  
  382. -- Пример 4-19.
  383. -- 7-те продукта с най-ниска цена.
  384.  SELECT TOP 7 *
  385.  FROM PRODUCTS
  386.  ORDER BY PRICE ASC
  387.  
  388.  SELECT TOP 7 WITH TIES *
  389.  FROM PRODUCTS
  390.  ORDER BY PRICE ASC
  391.  
  392.  
  393.  --ДОМАШНА РАБОТА:
  394. -- Доп.пример:
  395. -- а) Най-поръчваният продукт  е.... (идентификатор)
  396. -- б) Най-поръчваният продукт  е.... (име)
  397.  
  398. --Задача
  399. -- Имена, заплата и длъжността на служителите, които работят в отдел 80 и не са обработвали поръчки до момента;
  400.  
  401.  
  402.  
  403. -----------------------------------------------------------------------------------------
  404. ---------------------------------4.7.2. OFFSET и FETCH ----------------------------------
  405. -----------------------------------------------------------------------------------------
  406.  
  407. -- Пример 4-20.
  408. -- първите 5 служители, след което вторите 5, сортирани по id.
  409.  
  410. SELECT EMPLOYEE_ID, FNAME, LNAME, SALARY
  411. FROM EMPLOYEES
  412. ORDER BY EMPLOYEE_ID
  413. OFFSET 0 ROWS                     --ПРОПУСНИ БР. РЕДА
  414. FETCH NEXT 5 ROWS ONLY            --ХВАНИ СЛЕДВАЩИТЕ БР. РЕДА
  415.  
  416. /* Пример 4-21.
  417.    петимата служители, започвайки от 10-ти ред, подредени по дата на постъпване.
  418.    Първата заявка ще покаже всички за демонстрация, втората ще извърши подбора.*/
  419.  
  420.    --ALL
  421. SELECT EMPLOYEE_ID, FNAME, LNAME, SALARY , HIRE_DATE
  422. FROM EMPLOYEES
  423. ORDER BY HIRE_DATE
  424.     --ПРОПУСНИ 10 , ХВАНЕМ 5 СЛУЖИТЕЛЯ
  425. SELECT EMPLOYEE_ID, FNAME, LNAME, SALARY , HIRE_DATE
  426. FROM EMPLOYEES
  427. ORDER BY HIRE_DATE
  428. OFFSET 10 ROWS
  429. FETCH NEXT 5 ROWS ONLY
  430.  
  431. /* 4.7.3. Задачи
  432.    Задача 4-12.
  433.    вторите 10 най-добре платени служители (подредени по заплата низходящо). */
  434.    ---10
  435.    --(10)
  436.    SELECT EMPLOYEE_ID, FNAME, LNAME, SALARY , HIRE_DATE
  437.     FROM EMPLOYEES
  438.     ORDER BY SALARY DESC
  439.     OFFSET 10 ROWS
  440.     FETCH NEXT 10 ROWS ONLY
  441.  
  442. /* Задача 4-13.
  443.    Да се изведат име, фамилия и пол на клиентите, направили последните 5 поръчки.*/
  444.    SELECT C.FNAME, C.LNAME, C.GENDER, O.ORDER_DATE
  445.    FROM CUSTOMERS C JOIN ORDERS O
  446.    ON C.CUSTOMER_ID=O.CUSTOMER_ID
  447.    ORDER BY ORDER_DATE DESC
  448.    OFFSET 0 ROWS
  449.    FETCH NEXT 5 ROWS ONLY
  450.  
  451. -------------------------------------------------------------------------------------
  452. --------------------------------5. Изгледи / Views-----------------------------------
  453. -------------------------------------------------------------------------------------
  454. --  Създаване на изгледи
  455.  
  456. -- Пример 5-1.
  457. -- Да се създаде изглед, който съдържа
  458.  
  459. --  име и фамилия на клиентите, както и номер и дата на поръчките, които те са направили. (INNER JOIN)
  460.  
  461. CREATE VIEW CUSTOMERORDERS
  462. AS
  463.    SELECT C.FNAME + ' ' + C.LNAME AS NAME ,   --ALL COLUMNS HAVE NAME IN VIEWS
  464.           O.ORDER_ID, O.ORDER_DATE
  465.    FROM CUSTOMERS C, ORDERS O
  466.    WHERE O.CUSTOMER_ID=C.CUSTOMER_ID
  467.  
  468. -- Да се изведат данните от изгледа.
  469. SELECT * FROM CUSTOMERORDERS
  470.  
  471.  
  472. -- Пример 5-2.
  473. -- Да се модифицира горният изглед така, че да съдържа и колона с името на
  474. -- съответния служител, обработил поръчката.
  475.  
  476. -- Пример 5-3.
  477. -- Да се модифицира горния изглед така, че да съдържа само поръчките,
  478. -- обработени от служител с идентификатор = 167.
  479.  
  480. -- Пример 5-4.
  481. -- Да се създаде изглед, съдържащ име и фамилия на служител и общата сума
  482. -- на поръчките, които той е обработил.
  483.  
  484. -- Пример 5-5.
  485. -- Да се създаде изглед, който съдържа имена, отдел и заплата на 5-мата
  486. -- служители с най-висока заплата. За да бъдат извлечени служителите,
  487. -- подредени по заплата, очевидно ще трябва да бъдат сортирани по този критерий.
  488.  
  489.  
  490.  
  491. ------------------------5.4.Манипулиране на данни чрез изглед -----------------------
  492. -------------------------------------------------------------------------------------
  493. --Следващият изглед CUSTOMERS_COUNTRIES, базиран на JOIN между COUNTRIES и CUSTOMERS,
  494. --ще демонстрира манипулирането на данни.
  495.  
  496. --Пример 5-6.
  497. --Да се добави нов запис в таблицата CUSTOMERS през изгледа CUSTOMERS_COUNTRIES.
  498.  
  499. --5.4.2. Променяне на данни през изглед
  500. ---Пример 5-7.
  501. --Да се промени фамилията на клиент с идентификатор 10.
  502.  
  503. --5.4.3. Изтриване на данни през изглед
  504. --Пример 5-8.
  505. --Да се изтрие клиент с идентификатор 10.
  506.  
  507.  
  508. --5.5.Задачи
  509. --Задача 5-1.
  510. --Да се създаде изглед, който съдържа имената на продуктите и общо поръчано
  511. --количество от продукт.
  512.  
  513. --Задача 5-2.
  514. --Да се създаде изглед, който съдържа десетимата клиенти с най-голям брой
  515. --поръчки. Ако последният клиент има равен брой поръчки с други клиенти, те също да участват в изгледа.
  516.  
Add Comment
Please, Sign In to add comment