.header on
.mode column

CREATE TABLE aziende(
    cod_azienda INT PRIMARY KEY,
    denominazione CHAR(20) NOT NULL,
    indirizzo CHAR(30),
    citta CHAR(20),
    tel CHAR(15),
    settore CHAR(25) NOT NULL
);

CREATE TABLE dipendenti(
    matricola CHAR(5) PRIMARY KEY,
    cognome CHAR(20) NOT NULL,
    nome CHAR(20) NOT NULL,
    indirizzo CHAR(30),
    citta CHAR(30),
    professione CHAR(20) NOT NULL,
    reddito_lordo INT,
    trattenute INT,
    n_familiari INT,
    cod_azienda INT REFERENCES aziende(cod_azienda) 
);

CREATE TABLE versamenti (
    cod_versamento INT PRIMARY KEY, 
    data_vers DATE,                
    importo INT,
    matricola CHAR(5) REFERENCES dipendenti(matricola) 
    
);

-- Inserimento record tabella aziende
INSERT INTO aziende(cod_azienda, denominazione, indirizzo, citta, tel, settore) 
VALUES 
(33,'abb sace','via enrico fermi','frosinone','07752971','informatica'),
(22,'haleon','via nettunense','roma','800931556','farmaceutica'),
(44,'tecnofarma','via tumuli','frosinone','0775201364','farmaceutica');

-- Inserimento record tabella dipendenti
INSERT INTO dipendenti(matricola, cognome, nome, indirizzo, citta, professione, reddito_lordo, trattenute, n_familiari, cod_azienda) 
VALUES 
(007,'patrizio','gianfranchino','via tullio cicerone','frosinone','tecnico informatico',300000,140000,6,33),
(009,'patrizia','fagiolona','via armando fabi','frosinone','ingegnere biomedico',100000,40000,5,44), 
(008,'veronica','siffredi','via aldo moro','roma','ingegnere chimico',120000,51000,3,22);

-- Inserimento record tabella versamenti
INSERT INTO versamenti(cod_versamento, data_vers, importo, matricola)
VALUES 
(444,'2012-12-22',5000,007), 
(555,'2006-09-10',3200,009),
(222,'2008-08-11',1500,008);


--QUERY 13
--Numero dei dipendenti che lavorano in un'azienda di cui si conosce
--la denominzaione
SELECT COUNT(*) AS numero_dei_dipendenti
FROM aziende, dipendenti
WHERE dipendenti.cod_azienda=aziende.cod_azienda
    AND denominazione="tecnofarma";
.print 
    
--QUERY 14
--Valore minimo e massimo tra i redditi di tutti i dipendenti
SELECT MIN(reddito_lordo) AS minimmo, MAX (reddito_lordo) AS massimo
FROM dipendenti;
.print

--QUERY 15 
--Valore medio dei redditi dei dipendenti con professione prefissata
SELECT AVG(reddito_lordo) AS media
FROM dipendenti
WHERE professione="ingegnere chimico";
.print

--QUERY 16 
--Sommma dei versamenti di imposta effettuati dai dipendenti
--di un'azienda di cui si conosce il codice
SELECT SUM(importo) AS somma
FROM versamenti, dipendenti
WHERE versamenti.matricola=dipendenti.matricola
    AND cod_azienda=22;
.print

--QUERY 17
--Elenco alfebetico con i dati anagrafici di tutti i dipendenti
SELECT nome, cognome, indirizzo, citta
FROM dipendenti
ORDER BY cognome ASC, nome ASC;
.print

--QUERY 18
--Elenco alfabetico di tutte le aziende
SELECT denominazione
FROM aziende
ORDER BY denominazione ASC;
.print


Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: