cerca
Basi di Dati esercizio rimborsi
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Basi di Dati esercizio rimborsi

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