logo



Problema 18

Evidența comenzilor la un restaurant se realizează prin intermediul unei baze de date ce cuprinde tabelul Mese cu structura Nr_masa (N,2), Nr_locuri (N,1), Nr_comenzi (N,2), Valoare_comenzi (N,6.2), Data (D). Câmpul Valoare_comenzi reţine valoarea totală a comenzilor înregistrate la masa respectivă într-o zi.
Cerinţe:
a) Creaţi structura tabelului Mese;
b) Introduceți următoarele înregistrări în tabel:

Nr_masa

Nr_locuri

Nr_comenzi

Valoare_comenzi

Data

1

2

12

214

12.iul.2015

3

4

11

358

11.iul.2015

1

2

8

178

11.iul.2015

2

6

9

567

12.iul.2015

4

3

15

276

11.iul.2015

1

2

13

263

10.iul.2015

2

6

8

481

11.iul.2015

c) Afişaţi numărul comenzilor zilnice de la masa 1 din tabel, ordonate crescător după dată;
d) Folosind o interogare (secvenţă de instrucţiuni), afişaţi, pentru fiecare masă, valoarea totală cumulată a comenzilor din luna iulie 2015.

Rezolvare:

# a)

CREATE TABLE Mese (
    Nr_masa INT(2),
    Nr_locuri INT(1),
    Nr_comenzi INT(2),
    Valoare_comenzi DECIMAL(6,2),
    Data DATE
);

# b)

INSERT INTO Mese (Nr_masa, Nr_locuri, Nr_comenzi, Valoare_comenzi, Data)
VALUES 
(1, 2, 12, 214.00, '2015-07-12'),
(3, 4, 11, 358.00, '2015-07-11'),
(1, 2, 8, 178.00, '2015-07-11'),
(2, 6, 9, 567.00, '2015-07-12'),
(4, 3, 15, 276.00, '2015-07-11'),
(1, 2, 13, 263.00, '2015-07-10'),
(2, 6, 8, 481.00, '2015-07-11');

SELECT * from Mese;

# c)

SELECT Data, Nr_comenzi 
FROM Mese
WHERE Nr_masa = 1
ORDER BY Data ASC;
    
# d)

SELECT Nr_masa, SUM(Valoare_comenzi) AS Total_comenzi
FROM Mese
WHERE MONTH(Data) = 7 AND YEAR(Data) = 2015
GROUP BY Nr_masa;

 



Copyright © 2016 Kalytheo