next up previous
Next: About this document ... Up: Implementazione in SQL Previous: Creazione delle tabelle

Operazioni

/* esempio di articolo scritto da un collaboratore fisso */ 
 
insert into Articolo1

values ('164823', 'La Banda Bassotti colpisce ancora'); 
 
insert into Articolo2

values ('164823', 6, 30, 40, 'Cronaca', '01/07/2006', 'Papersera', 
        'DPPPCI61P24H501Z'); 
 
insert into Scrive1 

values ('164823', 'PPRPLN34R09H501O'); 
 
update Periodico

set NumeroArticoli = ( select NumeroArticoli+1

                       from Periodico

                       where Titolo = 'Papersera' )

where Titolo = 'Papersera';

Se si vuole solo registrare un nuovo numero l'operazione è la seguente:

insert into numero values ('01/06/2006', 'Papersera');
Se in seguito si vogliono anche registrare gli elementi della composizione si può riccorrere alla operazione 1 e alle seguenti:

insert into Editoriale 

values (241736, 'In questo numero del Papersera', 2, 1, 1, 
        '01/07/2006', 'Papersera', 'DPPPRN67M08H501K'); 
 
insert into SpazioPubblicitario

values (930318, 'Gelati PdP', 10090, 4, 30, 15, '01/07/2006', 
        'Papersera');

select A2.TitoloPeriodico, A2.DataDiUscita, A1.Titolo, A2.Pagina

from Articolo1 A1, Articolo2 A2

where A1.Codice = A2.Codice and

      (select extract(month from A2.DataDiUscita)) =

      (select extract(month from CURRENT_DATE))

order by TitoloPeriodico, DataDiUscita, Pagina;

select Nome

from CollaboratoreFisso

where CF in ( select distinct CF

              from Scrive1 S1, Articolo1 A1, Articolo2 A2

              where  A1.Codice = A2.Codice and

                     S1.CodiceArticolo = A2.Codice and

                     A1.Titolo like '%costituzione%')

    union

select Nome

from CollaboratoreOccasionale

where CF in ( select distinct CF

              from Scrive2 S2, Articolo1 A1, Articolo2 A2

              where  A1.Codice = A2.Codice and

                     S2.CodiceArticolo = A2.Codice and

                     A1.Titolo like '%costituzione%');

select A.TitoloPeriodico, count (A.Codice)

from Articolo2 A, Scrive2 S

where (select extract(year from A.DataDiUscita)) =

      (select extract(year from CURRENT_DATE))

      and A.Codice = S.CodiceArticolo

group by A.TitoloPeriodico;

select sum(Importo)

from PercepisceStipendio

where DataFine >= CURRENT_DATE;

select sum(Importo)

from PercepisceOnorario

where (select extract(month from Data)) =

      (select extract(month from CURRENT_DATE))

  and (select extract(year from Data)) =

      (select extract(year from CURRENT_DATE));

select sum(Prezzo)

from SpazioPubblicitario

where (select extract(month from DataDiUscita)) =

      (select extract(month from CURRENT_DATE))

  and (select extract(year from DataDiUscita)) =

      (select extract(year from CURRENT_DATE));

select Nome

from CollaboratoreFisso

where CF in (select CF

             from Scrive1 S, Articolo2 A

             where A.Codice = S.CodiceArticolo and 

                  (select extract(week from A.DataDiUscita)) =

                  (select extract(week from CURRENT_DATE)) and

                  (select extract(year from A.DataDiUscita)) =

                  (select extract(year from CURRENT_DATE)));

La media si ottiene dividendo la somma degli articoli scritti per ciascun tipo di periodico con i numeri usciti.

select Tipo, sum(NumeroArticoli) / ( select count(*)

                                     from Numero

                                     where TitoloPeriodico in

                                         ( select Titolo

                                           from Periodico P2

                                           where P2.Tipo = P.Tipo )

                                    ) as MediaArticoli 

from Periodico P

group by Tipo;


next up previous
Next: About this document ... Up: Implementazione in SQL Previous: Creazione delle tabelle
ilmantox 2006-08-06