create view nb_total_familles as select count(*) as nb_total_familles from famille; create view nb_total_articles as select count(*) as nb_total_articles from article; create view nb_total_tickets as select count(*) as nb_total_tickets from ticket; create view nb_total_adherents as select count(*) as nb_total_adherents from adherent; create materialized view detail_ticket as select t.id as ticket_id, t.date_ticket, t.mode_rglt, h.id as adherent_id, h.codepostal, h.genre, round(sum(l.total), 2) as total from ticket t join ligne l on l.ticket_id = t.id join adherent h on h.id = t.adherent_id group by t.id, h.id; create materialized view detail_vente as select t.id as ticket_id, t.date_ticket, t.mode_rglt, h.id as adherent_id, h.codepostal, h.genre, l.article_code, a.famille_code, round(sum(l.total), 2) as total from ticket t join ligne l on l.ticket_id = t.id join adherent h on h.id = t.adherent_id join article a on a.code = l.article_code group by t.id, h.id, l.article_code, a.famille_code;