24 lines
No EOL
978 B
SQL
24 lines
No EOL
978 B
SQL
CREATE MATERIALIZED VIEW mv_aktivita_citatelov
|
|
AS
|
|
SELECT
|
|
p.ID_pouzivatela,
|
|
p.Meno,
|
|
p.Priezvisko,
|
|
c.Cislo_preukazu,
|
|
c.Status AS Status_citatela,
|
|
COUNT(v.ID_vypozicky) AS Celkovy_pocet_vypoziciek,
|
|
COUNT(CASE WHEN v.Stav IN ('Aktívna','Oneskorená') THEN 1 END) AS Aktivne_vypozicky,
|
|
COUNT(CASE WHEN v.Stav = 'Vrátená' THEN 1 END) AS Ukoncene_vypozicky,
|
|
COUNT(CASE WHEN v.Stav = 'Oneskorená' THEN 1 END) AS Oneskorene_vypozicky,
|
|
ROUND(AVG(NVL(v.Skutocny_datum_vratenia, SYSDATE) - v.Datum_vypozicania)) AS Priemerna_dlzka_vypozicky,
|
|
MAX(v.Datum_vypozicania) AS Posledna_vypozicka
|
|
FROM xnecasr00.Pouzivatel p
|
|
JOIN xnecasr00.Citatel c ON c.ID_pouzivatela = p.ID_pouzivatela
|
|
LEFT JOIN xnecasr00.Vypozicka v ON v.ID_pouzivatela = p.ID_pouzivatela
|
|
GROUP BY p.ID_pouzivatela, p.Meno, p.Priezvisko, c.Cislo_preukazu, c.Status;
|
|
|
|
GRANT SELECT ON mv_aktivita_citatelov TO xnecasr00;
|
|
|
|
BEGIN
|
|
DBMS_MVIEW.REFRESH('mv_aktivita_citatelov');
|
|
END; |