CREATE OR REPLACE VIEW BGLOK
(TASTO, SALA, ALIAS, POSTI_SALA, IDSALA, 
 VUOTO, IDCALEND, MODIFICA, ESAURITO, IDPACCHETTO, 
 TITOLO, IDTARIFFA, STATO_FILM, ORA_INIZIO)
AS 
SELECT A.TASTO, A.DESCR AS SALA, A.ALIAS AS ALIAS, A.NPOSTI AS POSTI_SALA, A.IDSALA,B."VUOTO",B."IDCALEND",B."MODIFICA",B."ESAURITO",B."IDPACCHETTO",B."TITOLO",B."IDTARIFFA",B."STATO_FILM",B."ORA_INIZIO"
FROM (
 select TASTO, DESCR , ALIAS, s.IDSALA, count(*) as NPOSTI
 from sale s, posti p
 where
 s.idsala = p.idsala
 and p.ordine_ven is not null
 group by TASTO, DESCR, ALIAS, s.IDSALA
) A,
   (SELECT C.IDSALA AS VUOTO, C.IDCALEND, C.MODIFICA, C.ESAURITO, C.IDPACCHETTO,
P.DESCRIZIONE AS TITOLO, C.IDTARIFFA, TO_CHAR(C.data_ora,'HH24:MI') AS STATO_FILM,
C.data_ora AS ORA_INIZIO
    FROM PACCHETTO P, CAL_CORR C
    WHERE P.IDPACCHETTO=C.IDPACCHETTO
      AND C.DATA_ORA > SYSDATE
      AND ROUND(( C.DATA_ORA - SYSDATE) * 1440) <  (select
visualizza_inizio from datifissi)
    UNION
    SELECT C.IDSALA AS VUOTO, C.IDCALEND, C.MODIFICA, C.ESAURITO, C.IDPACCHETTO,
P.DESCRIZIONE AS TITOLO, C.IDTARIFFA, 'I TEMPO' AS STATO_FILM, C.data_ora AS ORA_INIZIO
    FROM PACCHETTO P, CAL_CORR C
    WHERE P.IDPACCHETTO=C.IDPACCHETTO
      AND C.DATA_ORA <= SYSDATE
      AND ROUND(( SYSDATE - C.DATA_ORA) * 1440) < (select
visualizza_fine from datifissi)) B
WHERE (A.IDSALA=B.VUOTO(+))
/


