logo



Problema 30

Evidența activităţii unui service auto se realizează prin intermediul unei baze de date ce cuprinde tabelul Reparaţii cu structura Id_reparatie (N,5), Descriere (T,100), Cost (N,5.2), Data_finalizare (D), Garantie (N,2), unde câmpul Garantie reţine cât timp este garantată reparaţia, timpul fiind exprimat în număr de luni calendaristice.
Cerinţe:
a) Creaţi structura tabelului Reparatii;
b) Introduceți următoarele înregistrări în tabel:

Id_reparatie

Descriere

Cost

Data_finalizare

Garantie

3441

Reparatie sistem frana

128.40

23.mai.2015

12

3442

Schimb filtre aer conditionat

39.89

28.mai.2015

6

3422

Indreptare aripa stanga fata

244.10

31.mai.2015

36

3478

Reglare unghi de fuga

299.00

24.mai.2015

24

3416

Reparatie sistem de lumini

248.45

23.mai.2015

6

3466

Schimb set distributie

455.00

19.mai.2015

36

c) Afişaţi reparaţiile ce au un cost mai mare sau egal cu 200, ordonate crescător după data de finalizare a reparaţiei;
d) Folosind o interogare (secvenţă de instrucţiuni), ştergeţi reparaţiile care au o garanţie mai mică sau egală cu un an.

Rezolvare:

# a)

CREATE TABLE Reparatii (
    Id_reparatie INT(5),
    Descriere VARCHAR(100),
    Cost DECIMAL(5,2),
    Data_finalizare DATE,
    Garantie INT(2)
);

# b)

INSERT INTO Reparatii (Id_reparatie, Descriere, Cost, Data_finalizare, Garantie) VALUES
(3441, 'Reparatie sistem frana', 128.40, '2015-05-23', 12),
(3442, 'Schimb filtre aer conditionat', 39.89, '2015-05-28', 6),
(3422, 'Indreptare aripa stanga fata', 244.10, '2015-05-31', 36),
(3478, 'Reglare unghi de fuga', 299.00, '2015-05-24', 24),
(3416, 'Reparatie sistem de lumini', 248.45, '2015-05-23', 6),
(3466, 'Schimb set distributie', 455.00, '2015-05-19', 36);

SELECT * from Reparatii;

# c)

SELECT *
FROM Reparatii
WHERE Cost >= 200
ORDER BY Data_finalizare ASC;
    
# d)

DELETE FROM Reparatii
WHERE Garantie <= 12;

SELECT * from Reparatii;

 

 



Copyright © 2016 Kalytheo