Documente Academic
Documente Profesional
Documente Cultură
O firmă de închirieri auto dispune de un parc auto format din maşini de mărci diferite, cu
motorizări diferite (benzină / motorină), număr de locuri diferit (5 sau 7 persoane) precum şi un
tarif zilnic stabilit diferenţiat pentru fiecare maşină în parte în funcţie de dotări.
Pentru a avea o evidenţă a tuturor clienţilor vom presupune o tabelă de clienţi în care vom
trece codul client (CNP pentru persoane fizice sau CIF pentru firme), numele, adresa, localitatea
şi numărul de telefon.
Închirierile vor fi înregistrate în tabela INCHIRIERI. Aici vom avea numărul tranzacţiei, data
închirierii, data restituirii, numărul de înmatriculare al maşinii, codul clientului şi un câmp (disc)
pentru discount-ul acordat (în procente).
Deoarece fiecare maşină se presupune că trebuie să intre atât periodic cât şi accidental în
service vom înregistra aceste intrări în tabela REVIZII. Astfel vom putea vedea disponibilitatea
maşinilor pentru închiriere, făcând diferenţa dintre totalul maşinilor din firmă şi maşinile
închiriate plus maşinile aflate în service. În tabela REVIZII vom avea câmpurile: numărul
operaţiei, tipul reviziei (RP = periodică / RA = accidentală / RK = capitală), data începerii
operaţiei (intrării în service), data terminării (ieşirii din service) şi numărul de înmatriculare al
maşinii.
Aplicaţia de gestiune a închirierilor auto se poate realiza cu ajutorul următoarelor relaţii
(tabele):
1
INCHIRIERI [nr_tranz, data_i, data_r, nr_inmat, cod_cli, disc]
2
Pentru interogările formulate se vor prezenta rezolvările utilizând limbajul SQL din Microsoft
Access.
SQL Access
P2. Care sunt maşinile, pe benzină cu 7 locuri, disponibile în data de 11 februarie 2017?
SQL Access
3
nr_inmat NOT IN
(SELECT revizii.nr_inmat
FROM revizii
WHERE #02-11-2017# BETWEEN revizii.data_i AND revizii.data_t)
AND
carburant="B" AND nr_locuri=7;
P3. Cât a plătit clientul Alfa SRL (cod_client RO123456) pentru închirierile efectuate?
SQL Access
4
SQL Access
SELECT nr_masini_disponibile, nr_masini_inchiriate, nr_masini_revizie
FROM [SELECT COUNT(NR_INMAT) AS nr_masini_disponibile
FROM masini
WHERE nr_inmat NOT IN
(SELECT inchirieri.nr_inmat
FROM inchirieri
WHERE #02-15-2017# BETWEEN inchirieri.data_i
AND inchirieri.data_r)
AND nr_inmat NOT IN
(SELECT revizii.nr_inmat
FROM revizii
WHERE #02-15-2017# BETWEEN revizii.data_i
AND revizii.data_t)]. AS tmp1,
[SELECT COUNT( inchirieri.nr_inmat) AS nr_masini_inchiriate
FROM inchirieri
WHERE #02-15-2017# BETWEEN inchirieri.data_i
AND inchirieri.data_r]. AS tmp2,
[SELECT COUNT(revizii.nr_inmat) AS nr_masini_revizie
FROM revizii
WHERE #02-15-2017# BETWEEN revizii.data_i
AND revizii.data_t]. AS tmp3;
P5. Care au fost cele mai solicitate mărci la închiriere, ca număr de zile? (Se vor evidenţia
primele două marci)
SQL Access
P6. Care este maşina cu tariful cel mai mic, disponibilă, în data de 20 februarie?
SQL Access