DatabaseCreation: views.sql

File views.sql, 5.1 KB (added by 231018, 29 hours ago)
Line 
1CREATE VIEW vw_neplateni_kazni_posledni_2_nedeli AS
2SELECT k.kazna_id,
3 k.datum,
4 k.rok_na_plakanje,
5 k.iznos_za_plakanje,
6 p.prekrsok_id,
7 p.opis,
8 g.ime,
9 g.prezime,
10 v.registarska_oznaka
11FROM Kazna k
12 JOIN Prekrsok p ON p.kazna_id = k.kazna_id
13 LEFT JOIN Prekrsok_Storitel ps ON p.prekrsok_id = ps.prekrsok_id
14 LEFT JOIN Gragjanin g ON ps.storitel_embg = g.embg
15 LEFT JOIN Prekrsok_Vozilo pv ON p.prekrsok_id = pv.prekrsok_id
16 LEFT JOIN Vozilo v ON pv.vozilo_id = v.vozilo_id
17 LEFT JOIN Plakanje pl ON pl.kazna_id = k.kazna_id
18WHERE k.datum >= CURRENT_DATE - INTERVAL '14 days'
19 AND pl.kazna_id IS NULL;
20
21----zasekogash a ne za 2 nedeli i dole kaj sho e
22
23
24CREATE VIEW vw_prekrsoci_denes AS
25SELECT p.prekrsok_id,
26 p.datum,
27 p.vreme,
28 p.opis,
29 p.detektirana_brzina,
30 z.ime AS zona,
31 z.dozvolena_brzina,
32 v.registarska_oznaka,
33 g.ime AS ime_gragjanin,
34 g.prezime AS prezime_gragjanin
35FROM Prekrsok p
36 LEFT JOIN Kamera k ON p.kamera_id = k.kamera_id
37 LEFT JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
38 LEFT JOIN Zona z ON l.zona_id = z.zona_id
39 LEFT JOIN Prekrsok_Vozilo pv ON p.prekrsok_id = pv.prekrsok_id
40 LEFT JOIN Vozilo v ON pv.vozilo_id = v.vozilo_id
41 LEFT JOIN Prekrsok_Storitel ps ON p.prekrsok_id = ps.prekrsok_id
42 LEFT JOIN Gragjanin g ON ps.storitel_embg = g.embg
43WHERE p.datum = CURRENT_DATE;
44
45
46
47CREATE VIEW vw_sopstvenici_na_vozila AS
48SELECT v.vozilo_id,
49 v.registarska_oznaka,
50 v.marka,
51 v.model,
52 g.ime,
53 g.prezime,
54 g.telefonski_broj
55FROM Vozilo v
56 JOIN Sopstvenik_Vozilo sv ON v.vozilo_id = sv.vozilo_id
57 JOIN Gragjanin g ON sv.embg = g.embg;
58
59
60
61CREATE VIEW vw_aktivni_zhalbi AS
62SELECT z.zalba_id,
63 z.datum_na_podnesuvanje,
64 z.sodrzina,
65
66 p.status AS status_prekrsok,
67
68 g.ime,
69 g.prezime
70FROM Zalba z
71 LEFT JOIN Korisnik k ON z.korisnik_id = k.korisnik_id
72 LEFT JOIN Gragjanin g ON k.embg = g.embg
73 LEFT JOIN Prekrsok p ON z.prekrsok_id = p.prekrsok_id;
74
75
76
77CREATE VIEW vw_neaktivni_kameri AS
78SELECT k.kamera_id,
79 k.status,
80 k.seriski_broj,
81 l.ulica,
82 z.ime AS zona
83FROM Kamera k
84 LEFT JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
85 LEFT JOIN Zona z ON l.zona_id = z.zona_id
86WHERE k.status IN ('neaktivna', 'servis');
87
88
89
90CREATE VIEW vw_prekrsoci_so_nadminata_brzina AS
91SELECT p.prekrsok_id,
92 p.detektirana_brzina,
93 z.dozvolena_brzina,
94 (p.detektirana_brzina - z.dozvolena_brzina) AS razlika,
95 z.ime AS zona
96FROM Prekrsok p
97 JOIN Kamera k ON p.kamera_id = k.kamera_id
98 JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
99 JOIN Zona z ON l.zona_id = z.zona_id
100WHERE p.detektirana_brzina > z.dozvolena_brzina;
101
102-----prekrshocii i prichini
103
104
105
106
107
108-- istecheni registracii
109-- prekshoci bez kazna
110-- vozila so anjmnogu prekrshoci i povtoreni prekshoci
111-- izveshtai na koja kamera od koj tip na prekrshok
112
113CREATE VIEW vw_istecheni_registracii AS
114SELECT r.registracija_id,
115 r.broj,
116 r.mesto,
117 r.datum,
118 r.datum_istekuvanje,
119 v.vozilo_id,
120 v.registarska_oznaka,
121 s.embg
122FROM Registracija r
123 JOIN Vozilo v ON r.Vozilovozilo_id = v.vozilo_id
124 JOIN Sopstvenik s ON r.sopstvenikEmbg = s.embg
125WHERE r.datum_istekuvanje < CURRENT_DATE;
126
127
128
129CREATE VIEW vw_prekshoci_bez_kazna AS
130SELECT p.prekrsok_id,
131 p.datum,
132 p.vreme,
133 p.opis,
134 p.detektirana_brzina,
135 tk.ime AS tip_prekrsok
136FROM Prekrsok p
137 LEFT JOIN TipPrekrsok tk ON p.tip_prekrsok_id = tk.tip_prekrsok_id
138WHERE p.kazna_id IS NULL;
139
140
141
142CREATE VIEW vw_vozila_najmnogu_prekshoci AS
143SELECT v.vozilo_id,
144 v.registarska_oznaka,
145 COUNT(pv.prekrsok_id) AS vkupno_prekshoci
146FROM Vozilo v
147 LEFT JOIN Prekrsok_Vozilo pv ON v.vozilo_id = pv.vozilo_id
148GROUP BY v.vozilo_id, v.registarska_oznaka;
149
150
151
152CREATE VIEW vw_povtoreni_prekshoci AS
153SELECT tk.ime AS tip_prekrsok,
154 v.registarska_oznaka,
155 COUNT(*) AS broj_povtoruvanja
156FROM Prekrsok p
157 JOIN TipPrekrsok tk ON p.tip_prekrsok_id = tk.tip_prekrsok_id
158 JOIN Prekrsok_Vozilo pv ON p.prekrsok_id = pv.prekrsok_id
159 JOIN Vozilo v ON pv.vozilo_id = v.vozilo_id
160GROUP BY tk.ime, v.registarska_oznaka
161HAVING COUNT(*) > 1;
162
163
164
165CREATE VIEW vw_kamera_tip_prekshok AS
166SELECT k.kamera_id,
167 k.seriski_broj,
168 tk.ime AS tip_prekrsok,
169 z.ime AS zona,
170 COUNT(p.prekrsok_id) AS broj_deteckii
171FROM Kamera k
172 LEFT JOIN Prekrsok p ON k.kamera_id = p.kamera_id
173 LEFT JOIN TipPrekrsok tk ON p.tip_prekrsok_id = tk.tip_prekrsok_id
174 LEFT JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
175 LEFT JOIN Zona z ON l.zona_id = z.zona_id
176GROUP BY k.kamera_id, k.seriski_broj, tk.ime, z.ime;