Swappa : Uni / Basi di Dati esercizio rimborsi
Creative Commons License

Torna alla pagina di Basi di Dati


 :: Basi di dati - Esercizio ::

Query: Rimborsi


FONDO( Codice, Importo, DataErogazione, Scadenza, MatrTitolare)
DIPENDENTE (Matricola, Nome, Cognome, Posizione)
PARTECIPA (MatrDipendente, CodFonfo)
'RIMBORSOSPESA (MatrDipendente, CodFondo, Data, Importo, Motivo)


1:Determinare per ciascun fondo, il nome ed il cognome dei dipendenti che hanno chiesto l'ultimo rimborso spesa''

''Della tabella RIMBORSOSPESA proietto solo le colonne che mi servono

RS:=ΠMatrDipendente, CodFondo, Data (RIMBORSOSPESA)

duplico la tabella

RS1:=ρ m,c,d, <- MatrDipendente, CodFondo, Data(RS)

ora faccio il join con RS per trovare le tuple che hanno la data + lontana per quanto riguarfìda lo stesso codice fondo

R:=ΠMatrDipendente, CodFondo, Data(RS1 |X|CodFondo=Codice ^ data<d RS)

dal totale tolgo le date + lontane e trovo la data odierna o comunque la più recente

D:= RS - R

siccome voglio nome e cognome del dipendente faccio un join tra D e DIPENDENTE proiettando le 2 colonne interessate

RISULTATO:=ΠNome, Cognome(D |X| MatrDipendente=Matricola DIPENDENTE)

2:Determinare la matricola dei dipendenti che hanno chiesto un rimborso spesa > 3000 euro e che non hanno mai chiesto un rimborso con motivazione viaggio aereo

Proietto le colonne che mi servono

RS:= ΠMatrDipendente, Importo, Motivo (RIMBORSOSPESA)

da questa tabella seleziono le tuple che nella casella importo hanno un valore > 3000 euro

R3000:= σ Importo>=3000 RS

sempre da quella tabella trovo le tuple che nella casella motivo hanno scritto viaggio aereo

RV:= σ motivo='viaggio aereo'RS

ora dal totale dil rimborso spese tolgo quelle che hanno come motivazione viaggio aereo. siccome voglio i rimborsi > di 3000 e che non sono viaggio aereo faccio l'inersezione

RISULTATO:=(RS-RV)∩R3000


Torna alla pagina di Basi di Dati

(Printable View of http://www.swappa.it/wiki/Uni/EsBDDRimborso)