-
Notifications
You must be signed in to change notification settings - Fork 0
/
zestaw3(zlaczenia_tabel).sql
103 lines (103 loc) · 3.41 KB
/
zestaw3(zlaczenia_tabel).sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
--1 Połączyć ze sobą 2 tabele–pracowników i departamentów,wyświetlając następujące informacje: dane osobowe pracownika, numer departamentu oraz jego nazwę.
SELECT
E.LAST_NAME,
E.FIRST_NAME,
D.ID,
D.NAME
FROM
DEPT D,EMP E
WHERE
E.DEPT_ID=D.ID;
--2 Wyświetlić numer departamentu, numer regionu oraz nazwę regionu dla wszystkich departamentów.
SELECT
D.ID,
D.REGION_ID,
R.NAME
FROM
DEPT D,REGION R
WHERE
D.REGION_ID=R.ID;
--3 Wyświetlić dane pracownika o nazwisku Menchu, numer oraz nazwę jego departamentu
SELECT
E.LAST_NAME,
E.FIRST_NAME,
D.ID,
D.NAME
FROM
DEPT D,EMP E
WHERE
E.DEPT_ID=D.ID AND
E.LAST_NAME LIKE 'Menchu';
--4 Wyświetlić nazwisko, nazwę regionu oraz prowizjędla pracowników,którzy otrzymują premię.
SELECT
E.LAST_NAME,
R.NAME,
E.COMMISSION_PCT
FROM
EMP E,REGION R,DEPT D
WHERE
E.DEPT_ID=D.ID AND D.REGION_ID=R.ID AND
E.COMMISSION_PCT IS NOT NULL;
--5 Wyświetlić dane przedstawicieli handlowych, identyfikator pracownika (tabela emp) oraz nazwy klientów (wszystkich). Wyświetlić też nazwytych klientów, którzy nie mają przypisanego przedstawiciela handlowego.
SELECT
NVL(TO_CHAR(E.LAST_NAME),'-'),
NVL(TO_CHAR(E.ID),'-'),
C.NAME
FROM
EMP E,CUSTOMER C
WHERE
E.ID(+)=C.SALES_REP_ID;
--6 Wyświetlić nazwiska pracowników oraz odpowiedniego dla danego pracownika kierownika(także nazwisko, tabela emp).
SELECT
E1.LAST_NAME||' pracuje dla '||E2.LAST_NAME
FROM
EMP E1,EMP E2
WHERE
E1.MANAGER_ID=E2.ID;
--7 Wyświetlić nazwę klienta składającego zamówienie, nazwisko pracownika „opiekującego” się danym zamówieniem, datę zamówienia, wielkość zamówienia oraz nazwę produktu –dla wszystkich zamówień onumerze 101.
SELECT
C.NAME,
E.LAST_NAME,
O.DATE_ORDERED,
I.QUANTITY,
P.NAME
FROM
ORD O,EMP E,CUSTOMER C,ITEM I,PRODUCT P
WHERE
O.CUSTOMER_ID = C.ID AND
O.ID = I.ORD_ID AND
P.ID = I.PRODUCT_ID AND
E.ID = O.SALES_REP_ID AND
O.ID = 101;
--8 Wyświetlić identyfikator klienta, jego nazwę oraz identyfikator zamówienia dla wszystkich klientów i ich zamówień. Wyświetlićtakże tych klientów, którzy nie złożyli żadnego zamówienia
SELECT
C.ID,
C.NAME,
NVL(TO_CHAR(O.ID),'-')
FROM
CUSTOMER C,ORD O
WHERE
C.ID=O.CUSTOMER_ID(+);
--9 Wyświetlić minimalne, maksymalne oraz średnie zarobki;podaćtakże sumę wszystkich zarobków oraz liczbę pracowników.
SELECT
MAX(SALARY),
MIN(SALARY),
AVG(SALARY),
SUM(SALARY),
COUNT(*)
FROM
EMP;
--10 Wyświetlić nazwiska tych pracowników, którzy według listy alfabetycznej są na pierwszym i ostatnim miejscu.
SELECT
MIN(LAST_NAME),
MAX(LAST_NAME)
FROM
EMP;
--11 Wyświetlić liczbę pracowników z działu 31, którzy pobierają premię
SELECT
COUNT(*)
FROM
EMP
WHERE
COMMISSION_PCT IS NOT NULL AND
DEPT_ID = 31;