Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --#1
- --Изведете имената на държавите, които не са свързани с никой регион.
- SELECT * FROM COUNTRIES
- WHERE REGION_ID IS NULL
- --#2
- --На коя длъжност (като название) са назначени най-много служители?
- SELECT TOP 1 JOB_TITLE, COUNT(EMPLOYEE_ID) служител
- FROM JOBS J JOIN EMPLOYEES E
- ON E.JOB_ID = J.JOB_ID
- GROUP BY JOB_TITLE, J.JOB_ID
- ORDER BY 2 DESC
- --#3
- --Кои типове продукти са се продали в общо количество над 1500 бр.?
- --Изведете техните имена и съответното общо количество.
- SELECT P.NAME, SUM(QUANTITY)'общо количество '
- FROM ORDER_ITEMS OI JOIN PRODUCTS P
- ON OI.PRODUCT_ID = P.PRODUCT_ID
- GROUP BY P.NAME, P.PRODUCT_ID
- HAVING SUM(QUANTITY) > 1500
- --#4
- --Изведете дата на продажба, броя на клиентите, направили покупки на тази дата,
- --броя на служителите, изпълнили тези продажби, броя на продажбите
- --и общата стойност на продажбите.
- SELECT CAST(ORDER_DATE AS DATE) 'ДАТА НА ПРОДАЖБА',
- COUNT(DISTINCT CUSTOMER_ID) 'БРОЙ КЛИЕНТИ',
- COUNT(DISTINCT EMPLOYEE_ID) 'БРОЙ СЛУЖИТЕЛИ',
- COUNT(DISTINCT OI.ORDER_ID) 'БРОЙ ПРОДАЖБИ',
- SUM(UNIT_PRICE*QUANTITY) 'ОБЩА СТОЙНОСТ'
- FROM ORDERS O FULL JOIN ORDER_ITEMS OI
- ON OI.ORDER_ID = O.ORDER_ID
- GROUP BY CAST(ORDER_DATE AS DATE)
- --проверка:
- SELECT *
- FROM ORDERS O JOIN ORDER_ITEMS OI
- ON OI.ORDER_ID = O.ORDER_ID
- WHERE CAST(ORDER_DATE AS DATE)= '2000-02-12'
- --#5
- --Изведете имената и телефонните номера на всички служители, които започват с 0878.
- SELECT FNAME, LNAME, PHONE
- FROM EMPLOYEES
- WHERE PHONE LIKE '0878%' -- WILDCARDS % _
- --#6
- --Изведете имена на клиенти, чиито адрес включва бул. Марица (без значение от номера) Пловдив.
- SELECT FNAME, LNAME, ADDRESS
- FROM CUSTOMERS
- WHERE ADDRESS LIKE '%бул.%Марица%Пловдив%'
- --#7
- --Изведете служителите (с техните имена и заплати),
- --получаващи по-голяма заплата от Матея Маврова
- SELECT E.FNAME, E.LNAME, E.SALARY
- FROM EMPLOYEES E JOIN EMPLOYEES MM
- ON E.SALARY > MM.SALARY
- WHERE MM.FNAME = 'Матея' AND MM.LNAME = 'Маврова'
- SELECT * FROM EMPLOYEES
- WHERE FNAME = 'Матея' AND LNAME = 'Маврова'
- SELECT *
- FROM EMPLOYEES
- WHERE SALARY > 7500
- --#8
- --Изведете име, цена от Products и реална цена, на която са продадени продуктите.
- --Нека цената, на която са продадени бъде по-голяма от средната в Products
- --цена на всички продукти.
- SELECT * FROM PRODUCTS
- WHERE PRODUCT_ID = 1791
- SELECT * FROM ORDER_ITEMS
- WHERE PRODUCT_ID = 1791
- SELECT DISTINCT P.NAME, P.PRICE, OI.UNIT_PRICE
- FROM PRODUCTS P JOIN ORDER_ITEMS OI
- ON P.PRODUCT_ID = OI.PRODUCT_ID
- WHERE OI.UNIT_PRICE > (SELECT AVG(PRICE) FROM PRODUCTS)
- --#9
- --Изведете имената и заплатите (с форматиране за българска валута)
- --на всеки един служител. Сортирайте по залплата в низходящ ред.
- SELECT FNAME, LNAME , FORMAT(SALARY, 'C', 'BG-BG' ) заплати
- FROM EMPLOYEES
- ORDER BY 3 DESC
- --#10
- -- Изведете имената на продуктите, единичната им цена, идентификаторите на поръчките
- -- и датите, на които са направени. Но нека резултатния набор включва само тези от тях,
- -- които са след 10.01.2018 г. Сортирайте по дата във възходящ ред.
- -- Забележка:
- -- нека ден, месец и година бъдат разпределени в отделни колони, а месецът
- -- да бъде представен с думи.
- SELECT GETDATE()
- SELECT P.NAME, OI.UNIT_PRICE,
- OI.ORDER_ID,
- DAY(ORDER_DATE) ДЕН,
- DATENAME(MONTH, ORDER_DATE) МЕСЕЦ,
- YEAR(ORDER_DATE) ГОДИНА
- FROM ORDERS O JOIN ORDER_ITEMS OI ON OI.ORDER_ID = O.ORDER_ID
- JOIN PRODUCTS P ON P.PRODUCT_ID = OI.PRODUCT_ID
- WHERE CAST (ORDER_DATE AS DATE) >'2018-10-01'
- ORDER BY ORDER_DATE ASC
- --#11
- --Изведете разликата в години на първата и последната поръчка на фирамата.
- SELECT MIN(ORDER_DATE) FROM ORDERS
- SELECT MAX(ORDER_DATE) FROM ORDERS
- SELECT DATEDIFF(YEAR, MIN(ORDER_DATE), MAX(ORDER_DATE)) FROM ORDERS
- --#12
- --Изведете данните за клиентите, пазарували на 27.07.2017 г.
- SELECT *
- FROM CUSTOMERS C JOIN ORDERS O
- ON C.CUSTOMER_ID = O.CUSTOMER_ID
- WHERE CAST (O.ORDER_DATE AS DATE) = '2017-07-27'
- --#13
- --Изведете клиентите, които са поръчвали през 2000 година.
- SELECT *
- FROM CUSTOMERS C JOIN ORDERS O
- ON C.CUSTOMER_ID = O.CUSTOMER_ID
- WHERE YEAR(O.ORDER_DATE) = 2000
- --#14
- --Изведете клиентите, които са поръчали само веднъж.
- --Сортирайте по малко име във възходящ ред.
- SELECT FNAME, LNAME, C.CUSTOMER_ID, COUNT(ORDER_ID)
- FROM CUSTOMERS C JOIN ORDERS O
- ON C.CUSTOMER_ID = O.CUSTOMER_ID
- GROUP BY FNAME, LNAME, C.CUSTOMER_ID
- HAVING COUNT(ORDER_ID) = 1
- --#15
- --Изведете минималната заплата на длъжностите, в които има назначени повече от 10 служителя.
- SELECT MIN_SALARY, JOB_TITLE, COUNT(EMPLOYEE_ID)
- FROM EMPLOYEES E JOIN JOBS J
- ON J.JOB_ID = E.JOB_ID
- GROUP BY MIN_SALARY, JOB_TITLE
- HAVING COUNT(EMPLOYEE_ID) > 10
- --#16.
- --Изведете длъжностите, на които няма назначени служители.
- SELECT MIN_SALARY, JOB_TITLE, COUNT(EMPLOYEE_ID)
- FROM EMPLOYEES E RIGHT JOIN JOBS J
- ON J.JOB_ID = E.JOB_ID
- GROUP BY MIN_SALARY, JOB_TITLE
- HAVING COUNT(EMPLOYEE_ID) = 0
- SELECT MIN_SALARY, JOB_TITLE
- FROM EMPLOYEES E RIGHT JOIN JOBS J
- ON J.JOB_ID = E.JOB_ID
- WHERE EMPLOYEE_ID IS NULL
- --#17.
- --Изведете име, фамилия и пол на клиентите, направили последните 5 поръчки.
- SELECT TOP 5 FNAME, LNAME, GENDER, ORDER_ID
- FROM CUSTOMERS C JOIN ORDERS O
- ON O.CUSTOMER_ID = C.CUSTOMER_ID
- ORDER BY ORDER_DATE DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement