| | 2 | |
| | 3 | |
| | 4 | === `Performer_Events` |
| | 5 | |
| | 6 | Овој поглед дава преглед на сите изведувачи и настаните на кои тие учествуваат, заедно со прецизниот термин на нивниот настап. |
| | 7 | |
| | 8 | {{{ |
| | 9 | |
| | 10 | CREATE VIEW "Performer_Events" AS |
| | 11 | SELECT p.performer_id, |
| | 12 | p.name AS performer_name, |
| | 13 | e.event_id, |
| | 14 | e.name AS event_name, |
| | 15 | eh.event_time |
| | 16 | FROM "Performer" p |
| | 17 | JOIN "Event_Happening_Performer" ehp ON p.performer_id = ehp.performer_id |
| | 18 | JOIN "Event_Happening" eh ON ehp.event_happening_id = eh.event_happening_id |
| | 19 | JOIN "Event" e ON eh.event_id = e.event_id; |
| | 20 | |
| | 21 | }}} |
| | 22 | |
| | 23 | === `Venue_Layout` |
| | 24 | |
| | 25 | Овој поглед ја прикажува целосната структура на секој објект (сала), поврзувајќи ги поединечните седишта со соодветните сектори и името на објектот. |
| | 26 | |
| | 27 | {{{ |
| | 28 | |
| | 29 | CREATE VIEW "Venue_Layout" AS |
| | 30 | SELECT v.venue_id, |
| | 31 | v.name AS venue_name, |
| | 32 | s.section_id, |
| | 33 | s.name AS section_name, |
| | 34 | st.seat_id, |
| | 35 | st.seat_number |
| | 36 | FROM "Venue" v |
| | 37 | JOIN "Section" s ON v.venue_id = s.venue_id |
| | 38 | JOIN "Seat" st ON s.section_id = st.section_id; |
| | 39 | |
| | 40 | }}} |
| | 41 | |
| | 42 | === `User_Tickets` |
| | 43 | |
| | 44 | Овој поглед ја прикажува целосната структура на секој објект (сала), поврзувајќи ги поединечните седишта со соодветните сектори и името на објектот. |
| | 45 | |
| | 46 | {{{ |
| | 47 | |
| | 48 | CREATE VIEW "User_Tickets" AS |
| | 49 | SELECT u.user_id, |
| | 50 | u.username, |
| | 51 | t.ticket_id, |
| | 52 | tp.purchase_id, |
| | 53 | tp.qr_code, |
| | 54 | tr.refund_id, |
| | 55 | tr.refund_time |
| | 56 | FROM "User" u |
| | 57 | JOIN "Ticket_Purchase" tp ON u.user_id = tp.user_id |
| | 58 | JOIN "Ticket" t ON tp.ticket_id = t.ticket_id |
| | 59 | LEFT JOIN "Ticket_Refund" tr ON tp.purchase_id = tr.purchase_id; |
| | 60 | |
| | 61 | }}} |
| | 62 | |
| | 63 | === `Event_User_Ratings` |
| | 64 | |
| | 65 | Овој поглед овозможува детален пристап до поединечните коментари и оценки што секој корисник ги оставил за одреден термин на настан. |
| | 66 | |
| | 67 | {{{ |
| | 68 | |
| | 69 | CREATE VIEW "Event_User_Ratings" AS |
| | 70 | SELECT eh.event_happening_id, |
| | 71 | e.event_id, |
| | 72 | e.name AS event_name, |
| | 73 | u.user_id, |
| | 74 | u.username, |
| | 75 | ehr.rating_id, |
| | 76 | ehr.rating, |
| | 77 | ehr.comment |
| | 78 | FROM "Event" e |
| | 79 | JOIN "Event_Happening" eh ON e.event_id = eh.event_id |
| | 80 | JOIN "Event_Happening_Rating" ehr ON eh.event_happening_id = ehr.event_happening_id |
| | 81 | JOIN "User" u ON ehr.user_id = u.user_id; |
| | 82 | |
| | 83 | }}} |
| | 84 | |
| | 85 | === `Event_Overall_Ratings` |
| | 86 | |
| | 87 | Овој поглед врши статистичка анализа на задоволството на публиката преку пресметување на просечната оцена и вкупниот број на рецензии за секој поединечен настан. |
| | 88 | |
| | 89 | {{{ |
| | 90 | |
| | 91 | CREATE VIEW "Event_Overall_Ratings" AS |
| | 92 | SELECT |
| | 93 | e.event_id, |
| | 94 | e.name AS event_name, |
| | 95 | eh.event_happening_id, |
| | 96 | eh.event_time, |
| | 97 | COUNT(ehr.rating_id) AS total_reviews, |
| | 98 | ROUND(AVG(ehr.rating), 2) AS average_rating |
| | 99 | FROM "Event" e |
| | 100 | JOIN "Event_Happening" eh ON e.event_id = eh.event_id |
| | 101 | JOIN "Event_Happening_Rating" ehr ON eh.event_happening_id = ehr.event_happening_id |
| | 102 | GROUP BY e.event_id, e.name, eh.event_happening_id, eh.event_time; |
| | 103 | |
| | 104 | }}} |
| | 105 | |
| | 106 | === `Event_Financial_Summary` |
| | 107 | |
| | 108 | Овој поглед ги сумира финансиските резултати за секој настан, прикажувајќи го вкупниот број на продадени билети, нето приходот по одбивање на рефундациите и посебно издвоената заработка од административните такси при враќање на влезниците. |
| | 109 | |
| | 110 | {{{ |
| | 111 | |
| | 112 | CREATE VIEW "Event_Financial_Summary" AS |
| | 113 | SELECT |
| | 114 | e.event_id, |
| | 115 | e.name AS event_name, |
| | 116 | eh.event_happening_id, |
| | 117 | eh.event_time, |
| | 118 | COUNT(tp.purchase_id) AS total_tickets_sold, |
| | 119 | |
| | 120 | -- total revenue |
| | 121 | SUM(tp.purchase_amount) - SUM(CASE WHEN tr.refund_amount IS NOT NULL THEN tr.refund_amount ELSE 0 END) AS net_revenue, |
| | 122 | |
| | 123 | -- refund taxes |
| | 124 | SUM(CASE WHEN tr.refund_id IS NOT NULL THEN tp.purchase_amount - tr.refund_amount ELSE 0 END) AS refund_tax_profit |
| | 125 | |
| | 126 | FROM "Event" e |
| | 127 | JOIN "Event_Happening" eh ON e.event_id = eh.event_id |
| | 128 | JOIN "Ticket" t ON eh.event_happening_id = t.event_happening_id |
| | 129 | JOIN "Ticket_Purchase" tp ON t.ticket_id = tp.ticket_id |
| | 130 | LEFT JOIN "Ticket_Refund" tr ON tp.purchase_id = tr.purchase_id |
| | 131 | GROUP BY e.event_id, e.name, eh.event_happening_id, eh.event_time; |
| | 132 | |
| | 133 | }}} |