Salve a tutti..
ho un DB cosi strutturato:
Codice PHP:
mysql> describe dipendenti;
+---------------+----------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------------------+------+-----+------------+----------------+
| matricola | smallint(5) unsigned | YES | MUL | NULL | |
| codfiscale | varchar(16) | | | | |
| nome | varchar(50) | | | | |
| cognome | varchar(50) | | | | |
| email | varchar(50) | YES | | NULL | |
| indirizzo | varchar(50) | YES | | NULL | |
| citta | varchar(50) | YES | | NULL | |
| cap | varchar(5) | YES | | NULL | |
| telefono | varchar(15) | YES | | NULL | |
| cell | varchar(15) | YES | | NULL | |
| datanascita | date | YES | | NULL | |
| assunzione | date | YES | | NULL | |
| licenziamento | date | YES | | NULL | |
| note | text | YES | | NULL | |
| id_dip | int(10) unsigned | | PRI | NULL | auto_increment |
| data_check | date | | | 0000-00-00 | |
+---------------+----------------------+------+-----+------------+----------------+
Codice PHP:
mysql> describe rapporti_commesse;
+-------------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+------------+----------------+
| id_rapporto | int(10) unsigned | | PRI | NULL | auto_increment |
| commessa | int(10) unsigned | | MUL | 0 | |
| data | date | | | 0000-00-00 | |
| descrizione | varchar(255) | | | | |
| maut | float(4,2) | YES | | 0.00 | |
| carp | float(4,2) | YES | | 0.00 | |
| dipendente | int(10) unsigned | | MUL | 0 | |
| ufficio | float(4,2) | YES | | 0.00 | |
+-------------+------------------+------+-----+------------+----------------+
Codice PHP:
mysql> describe commesse;
+---------------+----------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------------------+------+-----+------------+----------------+
| id_commessa | int(10) unsigned | | PRI | NULL | auto_increment |
| codice | varchar(16) | | UNI | | |
| descrizione | text | | | | |
| data | date | | | 0000-00-00 | |
| committente | smallint(5) unsigned | | MUL | 0 | |
| maut_prev | float(6,2) | YES | | NULL | |
| carp_prev | float(6,2) | YES | | NULL | |
| cant_prev | float(6,2) | YES | | NULL | |
| stato | tinyint(3) unsigned | | MUL | 3 | |
| data_consegna | date | YES | | NULL | |
+---------------+----------------------+------+-----+------------+----------------+
dove nella tabella rapporti_commesse giorno per giorno inserisco tutti i rapportini che ogni dipendente mi consegna a fine giornata.
e devo risolvere questo problema...
mi serve una query che mi trovi giorno per giorno il numero di rapportini che mi mancano da inserire (se ad esempio un dipendente si scorda di consegnarmelo)
praticamente una cosa tipo:
Codice PHP:
Data Mancanti Visualizza il riepilogo
Martedì, 03/06/2008 3 Rapportini mancanti del 03/06/2008
Mercoledì, 04/06/2008 7 Rapportini mancanti del 04/06/2008
Giovedì, 05/06/2008 6 Rapportini mancanti del 05/06/2008
Venerdì, 06/06/2008 8 Rapportini mancanti del 06/06/2008
Lunedì, 09/06/2008 7 Rapportini mancanti del 09/06/2008
Martedì, 10/06/2008 4 Rapportini mancanti del 10/06/2008
Mercoledì, 11/06/2008 5 Rapportini mancanti del 11/06/2008
Giovedì, 12/06/2008 5 Rapportini mancanti del 12/06/2008
Venerdì, 13/06/2008 4 Rapportini mancanti del 13/06/2008
Lunedì, 16/06/2008 11 Rapportini mancanti del 16/06/2008
ho parzialmente risolto in questo modo:
Codice PHP:
select distinct data,
count(distinct dipendente) as rapp_inseriti,
count(distinct id_dip) as numdipendenti,
count(distinct id_dip)-count(distinct dipendente) as differenza
from rapporti_commesse,dipendenti
where id_dip<>'40' and id_dip<>'22' and id_dip<>'41' and dipendente<>'22' and dipendente<>'40' and dipendente<>'41'
group by data
having differenza>0
ma ho il problema che ogni volta che inserisco un nuovo dipendente mi aumenta il numero di rapportini mancanti in tutti i giorni precedenti! In pratica mi servirebbe una query che tiene conto delle date di inizio lavoro di ogni dipendente (avevo pensato ad inserire un campo check_data dove fare data>check_data ma non trovo una soluzione!)
grazie a tutti!!