| 1 | CREATE OR REPLACE VIEW vw_neplateni_kazni_posledni_2_nedeli AS
|
|---|
| 2 | SELECT
|
|---|
| 3 | k.kazna_id,
|
|---|
| 4 | k.datum,
|
|---|
| 5 | k.rok_na_plakanje,
|
|---|
| 6 | k.iznos_za_plakanje,
|
|---|
| 7 |
|
|---|
| 8 | p.prekrsok_id,
|
|---|
| 9 | p.opis,
|
|---|
| 10 |
|
|---|
| 11 | g.ime,
|
|---|
| 12 | g.prezime,
|
|---|
| 13 |
|
|---|
| 14 | v.registarska_oznaka,
|
|---|
| 15 |
|
|---|
| 16 | CASE
|
|---|
| 17 | WHEN k.kazna_id IS NULL THEN 'Nema kazna'
|
|---|
| 18 | ELSE 'Postoi kazna'
|
|---|
| 19 | END AS proverka_kazna,
|
|---|
| 20 |
|
|---|
| 21 | CASE
|
|---|
| 22 | WHEN k.datum IS NULL THEN 'Kaznata nema datum'
|
|---|
| 23 | ELSE 'Kaznata ima datum'
|
|---|
| 24 | END AS proverka_datum_kazna,
|
|---|
| 25 |
|
|---|
| 26 | CASE
|
|---|
| 27 | WHEN k.datum >= CURRENT_DATE - INTERVAL '14 days' THEN 'Kaznata e vo posledni 2 nedeli'
|
|---|
| 28 | ELSE 'Kaznata ne e vo posledni 2 nedeli'
|
|---|
| 29 | END AS proverka_period_kazna,
|
|---|
| 30 |
|
|---|
| 31 | CASE
|
|---|
| 32 | WHEN k.rok_na_plakanje IS NULL THEN 'Kaznata nema rok za plakanje'
|
|---|
| 33 | WHEN k.rok_na_plakanje < CURRENT_DATE THEN 'Rokot za plakanje e istecen'
|
|---|
| 34 | WHEN k.rok_na_plakanje = CURRENT_DATE THEN 'Rokot za plakanje istekuva denes'
|
|---|
| 35 | ELSE 'Rokot za plakanje ne e istecen'
|
|---|
| 36 | END AS proverka_rok_na_plakanje,
|
|---|
| 37 |
|
|---|
| 38 | CASE
|
|---|
| 39 | WHEN k.iznos_za_plakanje IS NULL THEN 'Nema iznos za plakanje'
|
|---|
| 40 | WHEN k.iznos_za_plakanje <= 0 THEN 'Nevaliden iznos za plakanje'
|
|---|
| 41 | ELSE 'Ima validen iznos za plakanje'
|
|---|
| 42 | END AS proverka_iznos_za_plakanje,
|
|---|
| 43 |
|
|---|
| 44 | CASE
|
|---|
| 45 | WHEN p.prekrsok_id IS NULL THEN 'Kaznata nema povrzan prekrsok'
|
|---|
| 46 | ELSE 'Kaznata ima povrzan prekrsok'
|
|---|
| 47 | END AS proverka_prekrsok,
|
|---|
| 48 |
|
|---|
| 49 | CASE
|
|---|
| 50 | WHEN p.opis IS NULL OR TRIM(p.opis) = '' THEN 'Nema opis za prekrsokot'
|
|---|
| 51 | ELSE 'Ima opis za prekrsokot'
|
|---|
| 52 | END AS proverka_opis_prekrsok,
|
|---|
| 53 |
|
|---|
| 54 | CASE
|
|---|
| 55 | WHEN ps.storitel_embg IS NULL THEN 'Prekrsokot nema povrzan storitel'
|
|---|
| 56 | ELSE 'Prekrsokot ima povrzan storitel'
|
|---|
| 57 | END AS proverka_storitel,
|
|---|
| 58 |
|
|---|
| 59 | CASE
|
|---|
| 60 | WHEN g.embg IS NULL THEN 'Nema podatoci za gragjaninot'
|
|---|
| 61 | ELSE 'Ima podatoci za gragjaninot'
|
|---|
| 62 | END AS proverka_gragjanin,
|
|---|
| 63 |
|
|---|
| 64 | CASE
|
|---|
| 65 | WHEN g.ime IS NULL OR TRIM(g.ime) = '' THEN 'Nedostasuva ime na gragjaninot'
|
|---|
| 66 | ELSE 'Ima ime na gragjaninot'
|
|---|
| 67 | END AS proverka_ime_gragjanin,
|
|---|
| 68 |
|
|---|
| 69 | CASE
|
|---|
| 70 | WHEN g.prezime IS NULL OR TRIM(g.prezime) = '' THEN 'Nedostasuva prezime na gragjaninot'
|
|---|
| 71 | ELSE 'Ima prezime na gragjaninot'
|
|---|
| 72 | END AS proverka_prezime_gragjanin,
|
|---|
| 73 |
|
|---|
| 74 | CASE
|
|---|
| 75 | WHEN pv.vozilo_id IS NULL THEN 'Prekrsokot nema povrzano vozilo'
|
|---|
| 76 | ELSE 'Prekrsokot ima povrzano vozilo'
|
|---|
| 77 | END AS proverka_prekrsok_vozilo,
|
|---|
| 78 |
|
|---|
| 79 | CASE
|
|---|
| 80 | WHEN v.vozilo_id IS NULL THEN 'Nema podatoci za voziloto'
|
|---|
| 81 | ELSE 'Ima podatoci za voziloto'
|
|---|
| 82 | END AS proverka_vozilo,
|
|---|
| 83 |
|
|---|
| 84 | CASE
|
|---|
| 85 | WHEN v.registarska_oznaka IS NULL OR TRIM(v.registarska_oznaka) = '' THEN 'Nema registarska oznaka'
|
|---|
| 86 | ELSE 'Ima registarska oznaka'
|
|---|
| 87 | END AS proverka_registarska_oznaka,
|
|---|
| 88 |
|
|---|
| 89 | CASE
|
|---|
| 90 | WHEN pl.kazna_id IS NULL THEN 'Kaznata ne e platena'
|
|---|
| 91 | ELSE 'Kaznata e platena'
|
|---|
| 92 | END AS proverka_plakanje
|
|---|
| 93 |
|
|---|
| 94 | FROM Kazna k
|
|---|
| 95 | JOIN Prekrsok p ON p.kazna_id = k.kazna_id
|
|---|
| 96 | LEFT JOIN Prekrsok_Storitel ps ON p.prekrsok_id = ps.prekrsok_id
|
|---|
| 97 | LEFT JOIN Gragjanin g ON ps.storitel_embg = g.embg
|
|---|
| 98 | LEFT JOIN Prekrsok_Vozilo pv ON p.prekrsok_id = pv.prekrsok_id
|
|---|
| 99 | LEFT JOIN Vozilo v ON pv.vozilo_id = v.vozilo_id
|
|---|
| 100 | LEFT JOIN Plakanje pl ON pl.kazna_id = k.kazna_id
|
|---|
| 101 | WHERE k.datum >= CURRENT_DATE - INTERVAL '14 days'
|
|---|
| 102 | AND pl.kazna_id IS NULL;
|
|---|
| 103 |
|
|---|
| 104 |
|
|---|
| 105 |
|
|---|
| 106 | CREATE OR REPLACE VIEW vw_prekrsoci_denes AS
|
|---|
| 107 | SELECT
|
|---|
| 108 | p.prekrsok_id,
|
|---|
| 109 | p.datum,
|
|---|
| 110 | p.vreme,
|
|---|
| 111 | p.opis,
|
|---|
| 112 |
|
|---|
| 113 | z.ime AS zona,
|
|---|
| 114 | z.dozvolena_brzina,
|
|---|
| 115 |
|
|---|
| 116 | v.registarska_oznaka,
|
|---|
| 117 |
|
|---|
| 118 | g.ime AS ime_gragjanin,
|
|---|
| 119 | g.prezime AS prezime_gragjanin,
|
|---|
| 120 |
|
|---|
| 121 | CASE
|
|---|
| 122 | WHEN p.prekrsok_id IS NULL THEN 'Nema prekrsok'
|
|---|
| 123 | ELSE 'Postoi prekrsok'
|
|---|
| 124 | END AS proverka_prekrsok,
|
|---|
| 125 |
|
|---|
| 126 | CASE
|
|---|
| 127 | WHEN p.opis IS NULL OR TRIM(p.opis) = '' THEN 'Nema opis za prekrsokot'
|
|---|
| 128 | ELSE 'Ima opis za prekrsokot'
|
|---|
| 129 | END AS proverka_opis,
|
|---|
| 130 |
|
|---|
| 131 | CASE
|
|---|
| 132 | WHEN p.datum IS NULL THEN 'Nema datum za prekrsokot'
|
|---|
| 133 | ELSE 'Ima datum za prekrsokot'
|
|---|
| 134 | END AS proverka_datum,
|
|---|
| 135 |
|
|---|
| 136 | CASE
|
|---|
| 137 | WHEN p.vreme IS NULL THEN 'Nema vreme za prekrsokot'
|
|---|
| 138 | ELSE 'Ima vreme za prekrsokot'
|
|---|
| 139 | END AS proverka_vreme,
|
|---|
| 140 |
|
|---|
| 141 | CASE
|
|---|
| 142 | WHEN k.kamera_id IS NULL THEN 'Prekrsokot nema povrzana kamera'
|
|---|
| 143 | ELSE 'Prekrsokot ima povrzana kamera'
|
|---|
| 144 | END AS proverka_kamera,
|
|---|
| 145 |
|
|---|
| 146 | CASE
|
|---|
| 147 | WHEN l.lokacija_id IS NULL THEN 'Kamerata ne lokacija'
|
|---|
| 148 | ELSE 'Kamerata ima povrzana lokacija'
|
|---|
| 149 | END AS proverka_lokacija,
|
|---|
| 150 |
|
|---|
| 151 | CASE
|
|---|
| 152 | WHEN z.zona_id IS NULL THEN 'Lokacijata nema ma povrzanapovrzana zona'
|
|---|
| 153 | ELSE 'Lokacijata ima povrzana zona'
|
|---|
| 154 | END AS proverka_zona,
|
|---|
| 155 |
|
|---|
| 156 | CASE
|
|---|
| 157 | WHEN z.dozvolena_brzina IS NULL THEN 'Nema podatok za dozvolena brzina'
|
|---|
| 158 | ELSE 'Ima podatok za dozvolena brzina'
|
|---|
| 159 | END AS proverka_dozvolena_brzina,
|
|---|
| 160 |
|
|---|
| 161 | CASE
|
|---|
| 162 | WHEN pv.vozilo_id IS NULL THEN 'Prekrsokot nema povrzano vozilo'
|
|---|
| 163 | ELSE 'Prekrsokot ima povrzano vozilo'
|
|---|
| 164 | END AS proverka_prekrsok_vozilo,
|
|---|
| 165 |
|
|---|
| 166 | CASE
|
|---|
| 167 | WHEN v.vozilo_id IS NULL THEN 'Nema podatoci za voziloto'
|
|---|
| 168 | ELSE 'Ima podatoci za voziloto'
|
|---|
| 169 | END AS proverka_vozilo,
|
|---|
| 170 |
|
|---|
| 171 | CASE
|
|---|
| 172 | WHEN v.registarska_oznaka IS NULL OR TRIM(v.registarska_oznaka) = '' THEN 'Nema registarska oznaka'
|
|---|
| 173 | ELSE 'Ima registarska oznaka'
|
|---|
| 174 | END AS proverka_registarska_oznaka,
|
|---|
| 175 |
|
|---|
| 176 | CASE
|
|---|
| 177 | WHEN ps.storitel_embg IS NULL THEN 'Prekrsokot nema povrzan storitel'
|
|---|
| 178 | ELSE 'Prekrsokot ima povrzan storitel'
|
|---|
| 179 | END AS proverka_prekrsok_storitel,
|
|---|
| 180 |
|
|---|
| 181 | CASE
|
|---|
| 182 | WHEN g.embg IS NULL THEN 'Nema podatoci za gragjaninot'
|
|---|
| 183 | ELSE 'Ima podatoci za gragjaninot'
|
|---|
| 184 | END AS proverka_gragjanin,
|
|---|
| 185 |
|
|---|
| 186 | CASE
|
|---|
| 187 | WHEN g.ime IS NULL OR g.prezime IS NULL THEN 'Nedostasuva ime ili prezime na gragjaninot'
|
|---|
| 188 | ELSE 'Gragjaninot ima celosni podatoci'
|
|---|
| 189 | END AS proverka_podatoci_gragjanin
|
|---|
| 190 |
|
|---|
| 191 | FROM Prekrsok p
|
|---|
| 192 | LEFT JOIN Kamera k ON p.kamera_id = k.kamera_id
|
|---|
| 193 | LEFT JOIN Lokacija l ON l.lokacija_id = k.lokacija_id
|
|---|
| 194 | LEFT JOIN Zona z ON z.zona_id = l.zona_id
|
|---|
| 195 | LEFT JOIN Prekrsok_Vozilo pv ON pv.prekrsok_id = p.prekrsok_id
|
|---|
| 196 | LEFT JOIN Vozilo v ON v.vozilo_id = pv.vozilo_id
|
|---|
| 197 | LEFT JOIN Prekrsok_Storitel ps ON ps.prekrsok_id = p.prekrsok_id
|
|---|
| 198 | LEFT JOIN Gragjanin g ON g.embg = ps.storitel_embg
|
|---|
| 199 | WHERE p.datum = (
|
|---|
| 200 | SELECT MAX(datum)
|
|---|
| 201 | FROM Prekrsok
|
|---|
| 202 | );
|
|---|
| 203 |
|
|---|
| 204 |
|
|---|
| 205 | CREATE OR REPLACE VIEW vw_sopstvenici_na_vozila AS
|
|---|
| 206 | SELECT
|
|---|
| 207 | v.vozilo_id,
|
|---|
| 208 | v.registarska_oznaka,
|
|---|
| 209 | v.marka,
|
|---|
| 210 | v.model,
|
|---|
| 211 |
|
|---|
| 212 | g.ime,
|
|---|
| 213 | g.prezime,
|
|---|
| 214 | g.telefonski_broj,
|
|---|
| 215 |
|
|---|
| 216 | CASE
|
|---|
| 217 | WHEN v.vozilo_id IS NULL THEN 'Nema vozilo'
|
|---|
| 218 | ELSE 'Postoi vozilo'
|
|---|
| 219 | END AS proverka_vozilo,
|
|---|
| 220 |
|
|---|
| 221 | CASE
|
|---|
| 222 | WHEN v.registarska_oznaka IS NULL OR TRIM(v.registarska_oznaka) = '' THEN 'Nema registarska oznaka'
|
|---|
| 223 | ELSE 'Ima registarska oznaka'
|
|---|
| 224 | END AS proverka_registarska_oznaka,
|
|---|
| 225 |
|
|---|
| 226 | CASE
|
|---|
| 227 | WHEN v.marka IS NULL OR TRIM(v.marka) = '' THEN 'Nema marka na vozilo'
|
|---|
| 228 | ELSE 'Ima marka na vozilo'
|
|---|
| 229 | END AS proverka_marka,
|
|---|
| 230 |
|
|---|
| 231 | CASE
|
|---|
| 232 | WHEN v.model IS NULL OR TRIM(v.model) = '' THEN 'Nema model na vozilo'
|
|---|
| 233 | ELSE 'Ima model na vozilo'
|
|---|
| 234 | END AS proverka_model,
|
|---|
| 235 |
|
|---|
| 236 | CASE
|
|---|
| 237 | WHEN sv.vozilo_id IS NULL THEN 'Voziloto nema sopstvenik'
|
|---|
| 238 | ELSE 'Voziloto ima sopstvenik'
|
|---|
| 239 | END AS proverka_sopstvenost,
|
|---|
| 240 |
|
|---|
| 241 | CASE
|
|---|
| 242 | WHEN sv.embg IS NULL OR TRIM(sv.embg) = '' THEN 'Nema EMBG za sopstvenik'
|
|---|
| 243 | ELSE 'Ima EMBG za sopstvenik'
|
|---|
| 244 | END AS proverka_embg_sopstvenik,
|
|---|
| 245 |
|
|---|
| 246 | CASE
|
|---|
| 247 | WHEN g.embg IS NULL THEN 'Nema podatoci za gragjaninot'
|
|---|
| 248 | ELSE 'Ima podatoci za gragjaninot'
|
|---|
| 249 | END AS proverka_gragjanin,
|
|---|
| 250 |
|
|---|
| 251 | CASE
|
|---|
| 252 | WHEN g.ime IS NULL OR TRIM(g.ime) = '' THEN 'Nedostasuva ime na sopstvenikot'
|
|---|
| 253 | ELSE 'Ima ime na sopstvenikot'
|
|---|
| 254 | END AS proverka_ime_sopstvenik,
|
|---|
| 255 |
|
|---|
| 256 | CASE
|
|---|
| 257 | WHEN g.prezime IS NULL OR TRIM(g.prezime) = '' THEN 'Nedostasuva prezime na sopstvenikot'
|
|---|
| 258 | ELSE 'Ima prezime na sopstvenikot'
|
|---|
| 259 | END AS proverka_prezime_sopstvenik,
|
|---|
| 260 |
|
|---|
| 261 | CASE
|
|---|
| 262 | WHEN g.telefonski_broj IS NULL OR TRIM(g.telefonski_broj) = '' THEN 'Nema telefonski broj'
|
|---|
| 263 | ELSE 'Ima telefonski broj'
|
|---|
| 264 | END AS proverka_telefon,
|
|---|
| 265 |
|
|---|
| 266 | CASE
|
|---|
| 267 | WHEN v.registarska_oznaka IS NOT NULL
|
|---|
| 268 | AND v.marka IS NOT NULL
|
|---|
| 269 | AND v.model IS NOT NULL
|
|---|
| 270 | AND g.ime IS NOT NULL
|
|---|
| 271 | AND g.prezime IS NOT NULL
|
|---|
| 272 | THEN 'Zapisot e kompleten'
|
|---|
| 273 | ELSE 'Zapisot ne e kompleten'
|
|---|
| 274 | END AS proverka_celosen_zapis
|
|---|
| 275 |
|
|---|
| 276 | FROM Vozilo v
|
|---|
| 277 | JOIN Sopstvenik_Vozilo sv ON v.vozilo_id = sv.vozilo_id
|
|---|
| 278 | JOIN Gragjanin g ON sv.embg = g.embg;
|
|---|
| 279 |
|
|---|
| 280 | CREATE OR REPLACE VIEW vw_aktivni_zhalbi AS
|
|---|
| 281 | SELECT
|
|---|
| 282 | z.zalba_id,
|
|---|
| 283 | z.datum_na_podnesuvanje,
|
|---|
| 284 | z.sodrzina,
|
|---|
| 285 |
|
|---|
| 286 | p.status AS status_prekrsok,
|
|---|
| 287 |
|
|---|
| 288 | g.ime,
|
|---|
| 289 | g.prezime,
|
|---|
| 290 |
|
|---|
| 291 | CASE
|
|---|
| 292 | WHEN z.zalba_id IS NULL THEN 'Nema zalba'
|
|---|
| 293 | ELSE 'Postoi zalba'
|
|---|
| 294 | END AS proverka_zalba,
|
|---|
| 295 |
|
|---|
| 296 | CASE
|
|---|
| 297 | WHEN z.datum_na_podnesuvanje IS NULL THEN 'Zalbata nema datum na podnesuvanje'
|
|---|
| 298 | ELSE 'Zalbata ima datum na podnesuvanje'
|
|---|
| 299 | END AS proverka_datum_podnesuvanje,
|
|---|
| 300 |
|
|---|
| 301 | CASE
|
|---|
| 302 | WHEN z.datum_na_podnesuvanje > CURRENT_DATE THEN 'Datumot na zalbata e vo idnina'
|
|---|
| 303 | WHEN z.datum_na_podnesuvanje = CURRENT_DATE THEN 'Zalbata e podnesena denes'
|
|---|
| 304 | WHEN z.datum_na_podnesuvanje < CURRENT_DATE THEN 'Zalbata e podnesena vo minatoto'
|
|---|
| 305 | ELSE 'Nema datum za proverka'
|
|---|
| 306 | END AS proverka_period_zalba,
|
|---|
| 307 |
|
|---|
| 308 | CASE
|
|---|
| 309 | WHEN z.sodrzina IS NULL OR TRIM(z.sodrzina) = '' THEN 'Zalbata nema sodrzina'
|
|---|
| 310 | ELSE 'Zalbata ima sodrzina'
|
|---|
| 311 | END AS proverka_sodrzina,
|
|---|
| 312 |
|
|---|
| 313 | CASE
|
|---|
| 314 | WHEN z.korisnik_id IS NULL THEN 'Zalbata nema povrzan korisnik'
|
|---|
| 315 | ELSE 'Zalbata ima povrzan korisnik'
|
|---|
| 316 | END AS proverka_korisnik_id,
|
|---|
| 317 |
|
|---|
| 318 | CASE
|
|---|
| 319 | WHEN k.korisnik_id IS NULL THEN 'Nema podatoci za korisnikot'
|
|---|
| 320 | ELSE 'Ima podatoci za korisnikot'
|
|---|
| 321 | END AS proverka_korisnik,
|
|---|
| 322 |
|
|---|
| 323 | CASE
|
|---|
| 324 | WHEN k.embg IS NULL OR TRIM(k.embg) = '' THEN 'Korisnikot nema EMBG'
|
|---|
| 325 | ELSE 'Korisnikot ima EMBG'
|
|---|
| 326 | END AS proverka_embg_korisnik,
|
|---|
| 327 |
|
|---|
| 328 | CASE
|
|---|
| 329 | WHEN g.embg IS NULL THEN 'Nema podatoci za gragjaninot'
|
|---|
| 330 | ELSE 'Ima podatoci za gragjaninot'
|
|---|
| 331 | END AS proverka_gragjanin,
|
|---|
| 332 |
|
|---|
| 333 | CASE
|
|---|
| 334 | WHEN g.ime IS NULL OR TRIM(g.ime) = '' THEN 'Nedostasuva ime na gragjaninot'
|
|---|
| 335 | ELSE 'Ima ime na gragjaninot'
|
|---|
| 336 | END AS proverka_ime_gragjanin,
|
|---|
| 337 |
|
|---|
| 338 | CASE
|
|---|
| 339 | WHEN g.prezime IS NULL OR TRIM(g.prezime) = '' THEN 'Nedostasuva prezime na gragjaninot'
|
|---|
| 340 | ELSE 'Ima prezime na gragjaninot'
|
|---|
| 341 | END AS proverka_prezime_gragjanin,
|
|---|
| 342 |
|
|---|
| 343 | CASE
|
|---|
| 344 | WHEN z.prekrsok_id IS NULL THEN 'Zalbata nema povrzan prekrsok'
|
|---|
| 345 | ELSE 'Zalbata ima povrzan prekrsok'
|
|---|
| 346 | END AS proverka_prekrsok_id,
|
|---|
| 347 |
|
|---|
| 348 | CASE
|
|---|
| 349 | WHEN p.prekrsok_id IS NULL THEN 'Nema podatoci za prekrsokot'
|
|---|
| 350 | ELSE 'Ima podatoci za prekrsokot'
|
|---|
| 351 | END AS proverka_prekrsok,
|
|---|
| 352 |
|
|---|
| 353 | CASE
|
|---|
| 354 | WHEN p.status IS NULL OR TRIM(p.status) = '' THEN 'Prekrsokot nema status'
|
|---|
| 355 | ELSE 'Prekrsokot ima status'
|
|---|
| 356 | END AS proverka_status_prekrsok,
|
|---|
| 357 |
|
|---|
| 358 | CASE
|
|---|
| 359 | WHEN LOWER(p.status) = 'aktiven' THEN 'Prekrsokot e aktiven'
|
|---|
| 360 | WHEN LOWER(p.status) = 'zavrshen' THEN 'Prekrsokot e zavrshen'
|
|---|
| 361 | WHEN LOWER(p.status) = 'otkazan' THEN 'Prekrsokot e otkazan'
|
|---|
| 362 | WHEN p.status IS NULL OR TRIM(p.status) = '' THEN 'Nepoznat status na prekrsok'
|
|---|
| 363 | ELSE 'Drug status na prekrsok'
|
|---|
| 364 | END AS opis_status_prekrsok,
|
|---|
| 365 |
|
|---|
| 366 | CASE
|
|---|
| 367 | WHEN z.datum_na_podnesuvanje IS NOT NULL
|
|---|
| 368 | AND z.sodrzina IS NOT NULL
|
|---|
| 369 | AND TRIM(z.sodrzina) <> ''
|
|---|
| 370 | AND k.korisnik_id IS NOT NULL
|
|---|
| 371 | AND g.embg IS NOT NULL
|
|---|
| 372 | AND p.prekrsok_id IS NOT NULL
|
|---|
| 373 | THEN 'Zapisot za zalbata e kompleten'
|
|---|
| 374 | ELSE 'Zapisot za zalbata ne e kompleten'
|
|---|
| 375 | END AS proverka_celosen_zapis
|
|---|
| 376 |
|
|---|
| 377 | FROM Zalba z
|
|---|
| 378 | LEFT JOIN Korisnik k ON z.korisnik_id = k.korisnik_id
|
|---|
| 379 | LEFT JOIN Gragjanin g ON k.embg = g.embg
|
|---|
| 380 | LEFT JOIN Prekrsok p ON z.prekrsok_id = p.prekrsok_id;
|
|---|
| 381 |
|
|---|
| 382 | CREATE VIEW vw_neaktivni_kameri AS
|
|---|
| 383 | SELECT k.kamera_id,
|
|---|
| 384 | k.status,
|
|---|
| 385 | k.seriski_broj,
|
|---|
| 386 | l.ulica,
|
|---|
| 387 | z.ime AS zona
|
|---|
| 388 | FROM Kamera k
|
|---|
| 389 | LEFT JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
|
|---|
| 390 | LEFT JOIN Zona z ON l.zona_id = z.zona_id
|
|---|
| 391 | WHERE k.status IN ('neaktivna', 'servis');
|
|---|
| 392 |
|
|---|
| 393 |
|
|---|
| 394 |
|
|---|
| 395 | CREATE VIEW vw_prekrsoci_so_nadminata_brzina AS
|
|---|
| 396 | SELECT p.prekrsok_id,
|
|---|
| 397 | p.detektirana_brzina,
|
|---|
| 398 | z.dozvolena_brzina,
|
|---|
| 399 | (p.detektirana_brzina - z.dozvolena_brzina) AS razlika,
|
|---|
| 400 | z.ime AS zona
|
|---|
| 401 | FROM Prekrsok p
|
|---|
| 402 | JOIN Kamera k ON p.kamera_id = k.kamera_id
|
|---|
| 403 | JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
|
|---|
| 404 | JOIN Zona z ON l.zona_id = z.zona_id
|
|---|
| 405 | WHERE p.detektirana_brzina > z.dozvolena_brzina;
|
|---|
| 406 |
|
|---|
| 407 |
|
|---|
| 408 | CREATE OR REPLACE VIEW vw_istecheni_registracii AS
|
|---|
| 409 | SELECT
|
|---|
| 410 | r.registracija_id,
|
|---|
| 411 | r.broj,
|
|---|
| 412 | r.mesto,
|
|---|
| 413 | r.datum,
|
|---|
| 414 | r.datum_istekuvanje,
|
|---|
| 415 |
|
|---|
| 416 | v.vozilo_id,
|
|---|
| 417 | v.registarska_oznaka,
|
|---|
| 418 |
|
|---|
| 419 | s.embg,
|
|---|
| 420 |
|
|---|
| 421 | CASE
|
|---|
| 422 | WHEN r.registracija_id IS NULL THEN 'Nema registracija'
|
|---|
| 423 | ELSE 'Postoi registracija'
|
|---|
| 424 | END AS proverka_registracija,
|
|---|
| 425 |
|
|---|
| 426 | CASE
|
|---|
| 427 | WHEN r.broj IS NULL OR TRIM(r.broj) = '' THEN 'Nema broj na registracija'
|
|---|
| 428 | ELSE 'Ima broj na registracija'
|
|---|
| 429 | END AS proverka_broj_registracija,
|
|---|
| 430 |
|
|---|
| 431 | CASE
|
|---|
| 432 | WHEN r.mesto IS NULL OR TRIM(r.mesto) = '' THEN 'Nema mesto na registracija'
|
|---|
| 433 | ELSE 'Ima mesto na registracija'
|
|---|
| 434 | END AS proverka_mesto_registracija,
|
|---|
| 435 |
|
|---|
| 436 | CASE
|
|---|
| 437 | WHEN r.datum IS NULL THEN 'Nema datum na registracija'
|
|---|
| 438 | ELSE 'Ima datum na registracija'
|
|---|
| 439 | END AS proverka_datum_registracija,
|
|---|
| 440 |
|
|---|
| 441 | CASE
|
|---|
| 442 | WHEN r.datum_istekuvanje IS NULL THEN 'Nema datum na istekuvanje'
|
|---|
| 443 | ELSE 'Ima datum na istekuvanje'
|
|---|
| 444 | END AS proverka_datum_istekuvanje,
|
|---|
| 445 |
|
|---|
| 446 | CASE
|
|---|
| 447 | WHEN r.datum_istekuvanje < CURRENT_DATE THEN 'Registracijata e istecena'
|
|---|
| 448 | WHEN r.datum_istekuvanje = CURRENT_DATE THEN 'Registracijata istekuva denes'
|
|---|
| 449 | WHEN r.datum_istekuvanje > CURRENT_DATE THEN 'Registracijata e validna'
|
|---|
| 450 | ELSE 'Nema podatok za proverka na registracija'
|
|---|
| 451 | END AS proverka_status_registracija,
|
|---|
| 452 |
|
|---|
| 453 | CASE
|
|---|
| 454 | WHEN r.datum IS NOT NULL
|
|---|
| 455 | AND r.datum_istekuvanje IS NOT NULL
|
|---|
| 456 | AND r.datum_istekuvanje < r.datum
|
|---|
| 457 | THEN 'Datumot na istekuvanje e pred datumot na registracija'
|
|---|
| 458 | WHEN r.datum IS NOT NULL
|
|---|
| 459 | AND r.datum_istekuvanje IS NOT NULL
|
|---|
| 460 | AND r.datum_istekuvanje >= r.datum
|
|---|
| 461 | THEN 'Datumite na registracijata se validni'
|
|---|
| 462 | ELSE 'Nema dovolno podatoci za proverka na datumi'
|
|---|
| 463 | END AS proverka_validnost_datumi,
|
|---|
| 464 |
|
|---|
| 465 | CASE
|
|---|
| 466 | WHEN v.vozilo_id IS NULL THEN 'Registracijata nema povrzano vozilo'
|
|---|
| 467 | ELSE 'Registracijata ima povrzano vozilo'
|
|---|
| 468 | END AS proverka_vozilo,
|
|---|
| 469 |
|
|---|
| 470 | CASE
|
|---|
| 471 | WHEN v.registarska_oznaka IS NULL OR TRIM(v.registarska_oznaka) = '' THEN 'Nema registarska oznaka'
|
|---|
| 472 | ELSE 'Ima registarska oznaka'
|
|---|
| 473 | END AS proverka_registarska_oznaka,
|
|---|
| 474 |
|
|---|
| 475 | CASE
|
|---|
| 476 | WHEN s.embg IS NULL OR TRIM(s.embg) = '' THEN 'Registracijata nema povrzan sopstvenik'
|
|---|
| 477 | ELSE 'Registracijata ima povrzan sopstvenik'
|
|---|
| 478 | END AS proverka_sopstvenik,
|
|---|
| 479 |
|
|---|
| 480 | CASE
|
|---|
| 481 | WHEN r.broj IS NOT NULL
|
|---|
| 482 | AND TRIM(r.broj) <> ''
|
|---|
| 483 | AND r.mesto IS NOT NULL
|
|---|
| 484 | AND TRIM(r.mesto) <> ''
|
|---|
| 485 | AND r.datum IS NOT NULL
|
|---|
| 486 | AND r.datum_istekuvanje IS NOT NULL
|
|---|
| 487 | AND v.vozilo_id IS NOT NULL
|
|---|
| 488 | AND v.registarska_oznaka IS NOT NULL
|
|---|
| 489 | AND TRIM(v.registarska_oznaka) <> ''
|
|---|
| 490 | AND s.embg IS NOT NULL
|
|---|
| 491 | THEN 'Zapisot za registracija e kompleten'
|
|---|
| 492 | ELSE 'Zapisot za registracija ne e kompleten'
|
|---|
| 493 | END AS proverka_celosen_zapis
|
|---|
| 494 |
|
|---|
| 495 | FROM Registracija r
|
|---|
| 496 | JOIN Vozilo v ON r.Vozilovozilo_id = v.vozilo_id
|
|---|
| 497 | JOIN Sopstvenik s ON r.sopstvenikEmbg = s.embg
|
|---|
| 498 | WHERE r.datum_istekuvanje < CURRENT_DATE;
|
|---|
| 499 |
|
|---|
| 500 |
|
|---|
| 501 | CREATE OR REPLACE VIEW vw_lokacii_so_najmnogu_prekrsoci AS
|
|---|
| 502 | SELECT
|
|---|
| 503 | l.lokacija_id,
|
|---|
| 504 | l.ulica,
|
|---|
| 505 | z.ime AS zona,
|
|---|
| 506 | COUNT(p.prekrsok_id) AS broj_prekrsoci,
|
|---|
| 507 |
|
|---|
| 508 | CASE
|
|---|
| 509 | WHEN l.lokacija_id IS NULL THEN 'Nema lokacija'
|
|---|
| 510 | ELSE 'Postoi lokacija'
|
|---|
| 511 | END AS proverka_lokacija,
|
|---|
| 512 |
|
|---|
| 513 | CASE
|
|---|
| 514 | WHEN l.ulica IS NULL OR TRIM(l.ulica) = '' THEN 'Nema podatok za ulica'
|
|---|
| 515 | ELSE 'Ima podatok za ulica'
|
|---|
| 516 | END AS proverka_ulica,
|
|---|
| 517 |
|
|---|
| 518 | CASE
|
|---|
| 519 | WHEN z.ime IS NULL OR TRIM(z.ime) = '' THEN 'Lokacijata nema povrzana zona'
|
|---|
| 520 | ELSE 'Lokacijata ima povrzana zona'
|
|---|
| 521 | END AS proverka_zona,
|
|---|
| 522 |
|
|---|
| 523 | CASE
|
|---|
| 524 | WHEN COUNT(k.kamera_id) = 0 THEN 'Lokacijata nema kameri'
|
|---|
| 525 | ELSE 'Lokacijata ima kameri'
|
|---|
| 526 | END AS proverka_kameri,
|
|---|
| 527 |
|
|---|
| 528 | CASE
|
|---|
| 529 | WHEN COUNT(p.prekrsok_id) = 0 THEN 'Nema prekrsoci na ovaa lokacija'
|
|---|
| 530 | WHEN COUNT(p.prekrsok_id) BETWEEN 1 AND 10 THEN 'Mal broj prekrsoci'
|
|---|
| 531 | WHEN COUNT(p.prekrsok_id) BETWEEN 11 AND 50 THEN 'Sreden broj prekrsoci'
|
|---|
| 532 | ELSE 'Golem broj prekrsoci'
|
|---|
| 533 | END AS kategorija_broj_prekrsoci,
|
|---|
| 534 |
|
|---|
| 535 | CASE
|
|---|
| 536 | WHEN COUNT(p.prekrsok_id) = 0 THEN 'Lokacijata ne e kriticna'
|
|---|
| 537 | WHEN COUNT(p.prekrsok_id) >= 50 THEN 'Lokacijata e kriticna'
|
|---|
| 538 | ELSE 'Lokacijata treba da se sledi'
|
|---|
| 539 | END AS proverka_rizik_lokacija,
|
|---|
| 540 |
|
|---|
| 541 | CASE
|
|---|
| 542 | WHEN l.ulica IS NOT NULL
|
|---|
| 543 | AND TRIM(l.ulica) <> ''
|
|---|
| 544 | AND z.ime IS NOT NULL
|
|---|
| 545 | AND TRIM(z.ime) <> ''
|
|---|
| 546 | THEN 'Zapisot za lokacijata e kompleten'
|
|---|
| 547 | ELSE 'Zapisot za lokacijata ne e kompleten'
|
|---|
| 548 | END AS proverka_celosen_zapis
|
|---|
| 549 |
|
|---|
| 550 | FROM Lokacija l
|
|---|
| 551 | LEFT JOIN Zona z
|
|---|
| 552 | ON z.zona_id = l.zona_id
|
|---|
| 553 | LEFT JOIN Kamera k
|
|---|
| 554 | ON k.lokacija_id = l.lokacija_id
|
|---|
| 555 | LEFT JOIN Prekrsok p
|
|---|
| 556 | ON p.kamera_id = k.kamera_id
|
|---|
| 557 | GROUP BY
|
|---|
| 558 | l.lokacija_id,
|
|---|
| 559 | l.ulica,
|
|---|
| 560 | z.ime;
|
|---|
| 561 |
|
|---|
| 562 |
|
|---|
| 563 | CREATE OR REPLACE VIEW vw_vozila_najmnogu_prekshoci AS
|
|---|
| 564 | SELECT
|
|---|
| 565 | v.vozilo_id,
|
|---|
| 566 | v.registarska_oznaka,
|
|---|
| 567 |
|
|---|
| 568 | COUNT(pv.prekrsok_id) AS vkupno_prekshoci,
|
|---|
| 569 |
|
|---|
| 570 | CASE
|
|---|
| 571 | WHEN v.vozilo_id IS NULL THEN 'Nema vozilo'
|
|---|
| 572 | ELSE 'Postoi vozilo'
|
|---|
| 573 | END AS proverka_vozilo,
|
|---|
| 574 |
|
|---|
| 575 | CASE
|
|---|
| 576 | WHEN v.registarska_oznaka IS NULL OR TRIM(v.registarska_oznaka) = '' THEN 'Nema registarska oznaka'
|
|---|
| 577 | ELSE 'Ima registarska oznaka'
|
|---|
| 578 | END AS proverka_registarska_oznaka,
|
|---|
| 579 |
|
|---|
| 580 | CASE
|
|---|
| 581 | WHEN COUNT(pv.prekrsok_id) = 0 THEN 'Voziloto nema prekrsoci'
|
|---|
| 582 | ELSE 'Voziloto ima prekrsoci'
|
|---|
| 583 | END AS proverka_prekrsoci,
|
|---|
| 584 |
|
|---|
| 585 | CASE
|
|---|
| 586 | WHEN COUNT(pv.prekrsok_id) = 0 THEN 'Bez prekrsoci'
|
|---|
| 587 | WHEN COUNT(pv.prekrsok_id) BETWEEN 1 AND 3 THEN 'Mal broj prekrsoci'
|
|---|
| 588 | WHEN COUNT(pv.prekrsok_id) BETWEEN 4 AND 10 THEN 'Sreden broj prekrsoci'
|
|---|
| 589 | ELSE 'Golem broj prekrsoci'
|
|---|
| 590 | END AS kategorija_broj_prekrsoci,
|
|---|
| 591 |
|
|---|
| 592 | CASE
|
|---|
| 593 | WHEN COUNT(pv.prekrsok_id) = 0 THEN 'Voziloto ne e rizicno'
|
|---|
| 594 | WHEN COUNT(pv.prekrsok_id) BETWEEN 1 AND 3 THEN 'Voziloto treba da se sledi'
|
|---|
| 595 | WHEN COUNT(pv.prekrsok_id) BETWEEN 4 AND 10 THEN 'Voziloto e rizicno'
|
|---|
| 596 | ELSE 'Voziloto e visokorizicno'
|
|---|
| 597 | END AS proverka_rizik_vozilo,
|
|---|
| 598 |
|
|---|
| 599 | CASE
|
|---|
| 600 | WHEN v.registarska_oznaka IS NOT NULL
|
|---|
| 601 | AND TRIM(v.registarska_oznaka) <> ''
|
|---|
| 602 | THEN 'Zapisot za voziloto e kompleten'
|
|---|
| 603 | ELSE 'Zapisot za voziloto ne e kompleten'
|
|---|
| 604 | END AS proverka_celosen_zapis
|
|---|
| 605 |
|
|---|
| 606 | FROM Vozilo v
|
|---|
| 607 | LEFT JOIN Prekrsok_Vozilo pv ON v.vozilo_id = pv.vozilo_id
|
|---|
| 608 | GROUP BY
|
|---|
| 609 | v.vozilo_id,
|
|---|
| 610 | v.registarska_oznaka;
|
|---|
| 611 |
|
|---|
| 612 |
|
|---|
| 613 |
|
|---|
| 614 | CREATE VIEW vw_povtoreni_prekshoci AS
|
|---|
| 615 | SELECT tk.ime AS tip_prekrsok,
|
|---|
| 616 | v.registarska_oznaka,
|
|---|
| 617 | COUNT(*) AS broj_povtoruvanja
|
|---|
| 618 | FROM Prekrsok p
|
|---|
| 619 | JOIN TipPrekrsok tk ON p.tip_prekrsok_id = tk.tip_prekrsok_id
|
|---|
| 620 | JOIN Prekrsok_Vozilo pv ON p.prekrsok_id = pv.prekrsok_id
|
|---|
| 621 | JOIN Vozilo v ON pv.vozilo_id = v.vozilo_id
|
|---|
| 622 | GROUP BY tk.ime, v.registarska_oznaka
|
|---|
| 623 | HAVING COUNT(*) > 1;
|
|---|
| 624 |
|
|---|
| 625 |
|
|---|
| 626 |
|
|---|
| 627 | CREATE VIEW vw_kamera_tip_prekshok AS
|
|---|
| 628 | SELECT k.kamera_id,
|
|---|
| 629 | k.seriski_broj,
|
|---|
| 630 | tk.ime AS tip_prekrsok,
|
|---|
| 631 | z.ime AS zona,
|
|---|
| 632 | COUNT(p.prekrsok_id) AS broj_deteckii
|
|---|
| 633 | FROM Kamera k
|
|---|
| 634 | LEFT JOIN Prekrsok p ON k.kamera_id = p.kamera_id
|
|---|
| 635 | LEFT JOIN TipPrekrsok tk ON p.tip_prekrsok_id = tk.tip_prekrsok_id
|
|---|
| 636 | LEFT JOIN Lokacija l ON k.lokacija_id = l.lokacija_id
|
|---|
| 637 | LEFT JOIN Zona z ON l.zona_id = z.zona_id
|
|---|
| 638 | GROUP BY k.kamera_id, k.seriski_broj, tk.ime, z.ime; |
|---|