logo



Problema 32

Evidența activităţii unei firme de asigurări auto se realizează prin intermediul unei baze de date ce cuprinde tabelul Polite cu structura Id_polita (N,4), Societate (T,50), Durata (N,2), Pret (N,5.2), Oferta_actuala (Y/N), unde câmpul Durata reţine un număr ce reprezintă valabilitatea poliţei de asigurare, exprimat în luni calendaristice.
Cerinţe:
a) Creaţi structura tabelului Polite;
b) Introduceți următoarele înregistrări în tabel:

Id_polita

Societate

Durata

Pret

Oferta_actuala

32

Ardaf

6

189.10

Y

542

Asirom

12

294.00

Y

353

Euroins

6

197.40

N

1024

Asirom

6

205.70

Y

893

Carpatica

12

310.00

Y

871

Asirom

6

198.70

N

c) Afişaţi poliţele de asigurare din oferta actuală (câmpul Oferta_actuala=Y), care au durata de 6 luni, în ordinea descrescătoare a preţului;
d) Folosind o interogare (secvenţă de instrucţiuni), măriţi cu 5% din preţul existent, poliţele cu durata de 12 luni din oferta actuală.

Rezolvare:

# a)

CREATE TABLE Polite (
    Id_polita INT(4),
    Societate VARCHAR(50),
    Durata INT(2),
    Pret DECIMAL(5,2),
    Oferta_actuala TINYINT(1)
);

# b)

INSERT INTO Polite (Id_polita, Societate, Durata, Pret, Oferta_actuala) VALUES
(32, 'Ardaf', 6, 189.10, 1),
(542, 'Asirom', 12, 294.00, 1),
(353, 'Euroins', 6, 197.40, 0),
(1024, 'Asirom', 6, 205.70, 1),
(893, 'Carpatica', 12, 310.00, 1),
(871, 'Asirom', 6, 198.70, 0);

SELECT * from Polite;

# c)

SELECT *
FROM Polite
WHERE Oferta_actuala = 1 AND Durata = 6
ORDER BY Pret DESC;
    
# d)

UPDATE Polite
SET Pret = Pret * 1.05
WHERE Durata = 12 AND Oferta_actuala = 1;

SELECT * from Polite;

 

 



Copyright © 2016 Kalytheo