Torna alla pagina di Basi di Dati
Query: Rimborsi
FONDO( Codice, Importo, DataErogazione, Scadenza, MatrTitolare)
DIPENDENTE (Matricola, Nome, Cognome, Posizione)
PARTECIPA (MatrDipendente, CodFonfo)
'RIMBORSOSPESA (MatrDipendente, CodFondo, Data, Importo, Motivo)
''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)
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