Torna alla pagina di Basi di Dati
:: Basi di dati - Esercizio ::
Query: Calendari
CALENDARIO (Codice, Prezzo, Tipo, AnnoCalendario, CodiceProduttore)
PRODUTTORE (Codice,Nome, Indirizzo)
FOTOGRAFIA (Numero, NomeFotografo, MeseCalendario, CodiceCalendario)
1.Determinare per ogni produttore il codice calendario di tipo "da tavolo" di prezzo maggiore
Proietto le colonne Codice,Prezzo,CodiceProduttore selezionando solo le tuple che riguardano i calendari di tipo "da tavolo"
DT:=ΠCodice,Prezzo,CodiceProduttore (σ Tipo = 'da tavolo'(CALENDARIO))
Ne faccio una copia
DT2:=ρc,p,cp <- Codice,Prezzo,CodiceProduttore (DT)
individuo i calendari che costano di meno
MIN:=ΠCodiceProduttore, Codice(DT |X| CodiceProduttore= cp ^ prezzo<p DT2)
ora dal totale tolgo quelli che costano meno e trovo quello che costa di più
RISULTATO:= ΠCodiceProduttore, Codice (DT2) - MIN
2.Determiinare il codice dei calendari del 2003 che contengono solo foto scattate da Sferrnte
innanzitutto trovo i calendari del 2003
ANNO2003:=ΠCodice (σ Anno=2003(CALENDARIO))
Poi trovo tutti i calendari che Sferrante non ha fatto
NOSFERR:=ΠCodiceCalendario (σ NomeFotografo≠'Sferrante'(FOTOGRAFIA))
ora faccio il join tra i calendari del 2003 e NOSFERR per trovare i calendari 2003 non fatti da lui
NS:=(NOSFERR |X| Codice=CodiceCalendario ANNO2003)
Dal totale dei calendari 2003 togliamo quelli non di Sferrante
RISULTATO:=ΠCodice (ANNO2003) - ΠCodice (NS)
Torna alla pagina di Basi di Dati