| 396 | |
| 397 | |
| 398 | 2. За секој корисник покрај неговото име и email, да се испечати email_Provider, вкупниот број на миленици кои што ги поседува корисникот, колку од нив се мачиња а колку кучиња и дали корисникот има посетено ветеринарен центар во Skopje. |
| 399 | '''''Резултантна шема: (name, email, email_provider, total_pets, total_cats, total dogs, visited_vet_center_in_skopje)''''' |
| 400 | {{{ |
| 401 | SELECT |
| 402 | u.name, |
| 403 | u.email, |
| 404 | CASE |
| 405 | WHEN u.email LIKE '%@yahoo.com' THEN 'yahoo' |
| 406 | WHEN u.email LIKE '%@gmail.com' THEN 'gmail' |
| 407 | WHEN u.email LIKE '%@hotmail.com' THEN 'hotmail' |
| 408 | ELSE 'other' |
| 409 | END AS email_provider, |
| 410 | COUNT(DISTINCT p.ID) AS total_pets, -- Вкупно животни, избегнувајќи дуплирања |
| 411 | SUM(CASE WHEN tp.kind_of_pet = 'Cat' THEN 1 ELSE 0 END) AS total_cats, -- Вкупно мачки |
| 412 | SUM(CASE WHEN tp.kind_of_pet = 'Dog' THEN 1 ELSE 0 END) AS total_dogs, -- Вкупно кучиња |
| 413 | CASE |
| 414 | WHEN EXISTS ( |
| 415 | SELECT 1 |
| 416 | FROM pets_visit_vet_centers pv |
| 417 | JOIN vet_centers vc ON pv.id_vet_centers = vc.ID |
| 418 | JOIN cities c ON vc.citiesid = c.ID -- Поврзување со табелата cities |
| 419 | WHERE pv.id_pets IN (SELECT ID FROM pets WHERE usersID = u.ID) |
| 420 | AND c.name = 'Skopje' -- Проверка за Скопје |
| 421 | ) THEN TRUE |
| 422 | ELSE FALSE |
| 423 | END AS visited_vet_center_in_skopje |
| 424 | FROM |
| 425 | users u |
| 426 | LEFT JOIN |
| 427 | pets p ON u.ID = p.usersID |
| 428 | LEFT JOIN |
| 429 | type_of_pets tp ON p.typeofpetsid = tp.ID -- Поврзување со табелата type_of_pets |
| 430 | GROUP BY |
| 431 | u.ID, u.email; |
| 432 | }}} |