Subiect_11

eUn magazin on-line realizează desfacerea produselor prin intermediul unei aplicaţii informatice ce funcţionează conform următorului ERD:

S11 ERD

În cadrul unei comenzi preţul specificat este pentru o unitate de produs. Un client poate face într-o zi mai multe comenzi, însă o comandă se înregistrează pentru un singur client. Cerințe:

a) Construiți baza de date cu tabele corespunzătoare şi relațiile reprezentate în ERD. Populați tabelele cu înregistrări relevante pentru cerințele următoare:

b) Care sunt produsele comandate astăzi?

c) Câte comenzi a făcut în luna martie 2010 dl. Georgescu Andrei?

d) Care este valoarea totală a vânzărilor pentru Ciocolata Milka?

Rezolvare

a) Construiți baza de date cu tabele corespunzătoare şi relațiile reprezentate în ERD. Populați tabelele cu înregistrări relevante pentru cerințele următoare:

Structura tabelului CLIENT pentru fiecare câmp:

- cod_client - cheie primară, Data Type: AutoNumber

- nume - Data Type: Text

proprietăţi modificate

Field Size: 60

Required: Yes

- adresa - Data Type: Text

proprietăţi modificate

Field Size: 255

Required: Yes

- email - Data Type: Text

proprietăţi modificate

Field Size: 60

- tel - Data Type: Text

proprietăţi modificate

Field Size: 20

Input mask: \(9999") "999999;0;_

Structura tabelului COMANDA pentru fiecare câmp:

- cod_client - Data Type: Number

proprietăţi modificate

Field Size: Long Integer

Required: Yes

- data - Data Type: Date/Time

proprietăţi modificate

Field Size: Short Date

Required: Yes

- produs - Data Type: Text

proprietăţi modificate

Field Size: 50

Required: Yes

- pret - Data Type: Number

proprietăţi modificate

Field Size: Single

Decimal places: 2

Required: Yes

- cantitate - Data Type: Number

proprietăţi modificate

Field Size: Single

Decimal places: 3

Required: Yes

Opţional: Pentru a completa mai rapid datele în tabelul COMANDA, se poate realiza o interogare care să preia codul şi numele clientului din tabelul CLIENT.

S11lookup

Se realizează relaţia dintre tabele legând

câmpul-cheie primară cod_client din tabelul CLIENT la

câmpul cod_client din tabelul COMANDA.

S11relatii

Se introduc înregistrări în tabele - cel puţin o înregistrare cu un produs comandat azi (cerinţa b) şi unul în luna martie 2010 (cerinţa c), un client numit Georgescu Andrei (cerinţa c) şi câteva înregistrări cu produsul numit Ciocolata Milka (suma de la cerinţa d).

b) Care sunt produsele comandate astăzi?

Se creează o interogare care preia date din tabelul COMANDA - Create - Query Wizard - Simple Query Wizard.

În modul Design View la câmpul data, la criteriu se foloseşte funcţia Date(), care afişează data de azi (data curentă din calculator). Se poate debifa marcatorul pentru afişarea câmpului data.

S11interogare1

c) Câte comenzi a făcut în luna martie 2010 dl. Georgescu Andrei?

Se creează o interogare care preia date din ambele tabele. Aici vom grupa datele şi vom folosi funcţia Count() pentru a număra înregistrările grupate care îndeplinesc criteriile scrise în dreptul câmpurilor selectate.

Create - Query Design. Se adaugă cele două tabele. În modul Design View al interogării se adaugă câmpul nume din tabelul CLIENT.

Totals-btn

Cu click pe butonul se adaugă rândul Total în fereastra de jos.

În coloanele a doua şi a treia se scriu formulele pentru extragerea lunii şi a anului din câmpul data, iar în coloana a patra se scrie Nr comenzi: Count(*), pentru a număra înregistrările - vezi figura de mai jos.

S11interogare2

Pe rândul Total, la câmpurile nume, luna şi anul se alege Group by - pentru a grupa datele după criteriile scrise pe rândul Criteria, iar la câmpul care conţine formula de numărare se alege Expression.

d) Care este valoarea totală a vânzărilor pentru Ciocolata Milka?

Valoarea totală = se adună cantitate*preţ pentru fiecare înregistrare a produsului (e posibil ca la date calendaristice diferite preţurile să fie diferite).

Se creează o interogare care preia date din tabelul COMANDA. Aici vom grupa datele şi vom folosi funcţia Sum pentru a aduna produsele cantitate * preţ a fiecărei înregistrări.

Create - Query Design. Se adaugă tabelul COMANDA.

În modul Design View al interogării se adaugă câmpul produs din tabelul COMANDA.

Totals-btn

Cu click pe butonul se adaugă rândul Total în fereastra de jos.

S11interogare_3

Grupăm câmpul produs (Group by) după criteriul "Ciocolata Milka" iar în coloana a doua aflăm valoarea acesteia, înmulţind câmpurile pret şi cantitate, după care le însumăm (Sum).

Am ataşat fişierul rezolvat în format mdb.

Spor la lucru!