-
Notifications
You must be signed in to change notification settings - Fork 0
/
BD_CW4_307354.sql
60 lines (50 loc) · 1.97 KB
/
BD_CW4_307354.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
/* Polecenie a) */
-- Przybyłem, przeczytałem, przećwiczyłem, zrozumiałem :)
/* Polecenie b) */
SELECT
e.ID_OSOBY AS [ID klienta]
, CONVERT( nvarchar(64), o.IMIE + ' ' + o.NAZWISKO ) AS [Klient]
, e.PENSJA AS [Pensja klienta]
, e.ID_FIRMY AS [ID Firmy klienta]
, mO.NAZWA AS [Miejscowość klienta]
FROM dbo.ETATY e
JOIN dbo.OSOBY o
ON (o.ID_OSOBY = e.ID_OSOBY )
JOIN dbo.MIASTA mO
ON (o.ID_MIASTA = mO.ID_MIASTA ) AND ( mO.NAZWA LIKE 'W%' )
WHERE e.PENSJA = ( SELECT MAX( MAXe.PENSJA )
FROM dbo.ETATY MAXe, dbo.MIASTA MAXmO, dbo.OSOBY MAXo
WHERE ( MAXo.ID_MIASTA = MAXmO.ID_MIASTA )
AND ( MAXo.ID_OSOBY = MAXe.ID_OSOBY )
AND ( MAXmO.NAZWA LIKE 'W%' )
)
/* Wynik:
ID klienta Klient Pensja klienta ID Firmy klienta Miejscowość klienta
5 Ala Makota 6000 OGR Wesoła
*/
/* Polecenie c)
Sprawdźmy, czy rzeczywiście pokazuje tylko etaty z miasta na literę W, szukając takiej samej pensji poza miastami na W */
SELECT
e.ID_OSOBY AS [ID klienta]
, CONVERT( nvarchar(64), o.IMIE + ' ' + o.NAZWISKO ) AS [Klient]
, e.PENSJA AS [Pensja klienta]
, e.ID_FIRMY AS [ID Firmy klienta]
, mO.NAZWA AS [MiejscowoϾ klienta]
FROM dbo.ETATY e
JOIN dbo.OSOBY o
ON (o.ID_OSOBY = e.ID_OSOBY )
JOIN dbo.MIASTA mO
ON (o.ID_MIASTA = mO.ID_MIASTA ) AND ( mO.NAZWA NOT LIKE 'W%' )
WHERE e.PENSJA = ( SELECT MAX( MAXe.PENSJA )
FROM dbo.ETATY MAXe, dbo.MIASTA MAXmO, dbo.OSOBY MAXo
WHERE ( MAXo.ID_MIASTA = MAXmO.ID_MIASTA )
AND ( MAXo.ID_OSOBY = MAXe.ID_OSOBY )
AND ( MAXmO.NAZWA LIKE 'W%' )
)
/* Wynik:
ID klienta Klient Pensja klienta ID Firmy klienta Miejscowość klienta
3 Ania Zzielonegowzgórza 6000 ES Tarnów
Rzeczywiście w Tarnowie istnieje etat o takiej samej pensji, ale nie wyświetliło go w poprzednim zapytaniu.
Podobnie tamten etat nie wyświetlił się teraz, gdy kazałem wyświetlać miasta nie zaczynające się na literę W.
Więc wszystko jest prawidłowo :)
*/