Newsgroup: it.comp.appl.access
Titolo: Trovare abbinamenti orari

Ho tre persone che lavorano nell'arco di 8 ore in modo non omogeneo.
Registrano il loro lavoro in questo modo.
Persona1 dalle 06:00 alle 14:00
Persona2 dalle 06:00 alle 08:00
Persona2 dalle 08:00 alle 10:00
Persona3 dalle 09:00 alle 10:30
Persona3 dalle 13:00 alle 14:00
Graficamente
        06---08---10---12---14
P1    xxxxxxxxxxxxxxxxxxxxxx
P2    xxxxxxxxxxx
P3                   xxxx           xxx
Io devo tirare fuori i vari periodi uguali, in questo modo:
Dalle 06:00 alle 09:00    P1+P2
Dalle 09:00 alle 10:00    P1+P2+P3
Dalle 10:00 alle 10:30    P1+P3
Dalle 10:30 alle 13:00    P1
Dalle 13:00 alle 14:00    P1+P3
Come posso fare?
io pensavo di dividere le 8 ore in periodi di 15 minuti (in pratica creare
30 variabili, magari con una matrice).
Per ogni periodo di 15 minuti (partendo dalle 8:00 e aggiungendo sempre 15
min) vado a controllare se P1 ha registrato qualcosa in questo periodo, poi
controllo P2 e poi P3. In qualche modo devo salvarmi i vari periodi (da
06:00 a 09:00 P1+P2, etc etc).
Funzionerà? Avete altre idee migliori?
Ciao e grazie
Luca

 Ho tre persone che lavorano nell'arco di 8 ore in modo non omogeneo.
    Beh se la cosa è spezzabile davvero in periodi....e non hai necessità
nel "continuo" delle 24 ore
    ti fai una tabella che agganci alla scheda anagrafica
    la tabella la spezzi in campi numerici e ci metti 0 o 1
    se lo spezzi in 15 minuti
    24*4 campi...altrimenti vedi tu la frammentazione ....cmq se è
rilevamento ore lavorate....
    dipende dai contratti...alcuni supermercati ad esempio contano i 15
minuti...
    se marchi 8.05 conta (8.00)....8.14.....(8)....8.16...(8.15)...in altri
settori si arrotonda diversamente!
a quel punto diventa semplice:
    con una query di somma trovi quanti minuti son stati lavorati
    es risultato12
    = 12*15 min
con una Where Campo=1 chi ha lavorato in una fascia
con una group chi ha lavorato...etc etc
-- 
------------------------------------------------
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel bestiario!
:-)

 con una group chi ha lavorato...etc etc
provo ma mi sembra di non capire.
ciao e grazie
Luca

 Luca
-- 
------------------------------------------------
Il Wodkino Nazionale č a : 
www.martek.it


 Per 10'  P1+P2+P3    (dalle 10:00 alle 10.15)
 Un esempio sega con proprio il minimo di sql:
Chi ha lavorato dalle 8.45 alle 9.00(escluso)?
SELECT IDpersona From TABELLAore WHERE Fascia0845=1
ti riporterà
P1
P3
leggibile come recordset
potresti costruirti al volo una tabella con i risultati
oppure ciclare sulle fasce orarie cn un minimo di codice e sostituzione
stringa
....

 2) Chiami un programmatore e lo fai fare a lui!
già fatto ma non ha saputo tirare fuori il risultato che volevamo
e quando abbiamo spiegato il problema su carta aveva capito.

 SELECT IDpersona From TABELLAore WHERE Fascia0845=1
Prima di questa select devo riempire la TABELLAore
So che la prima persona ha lavorato dalle 08 alle 10
quindi devo mettere il valore 1 su tutti i campi dalle 0800 alle 10
Con una INSERT INTO inserisco le varie persone nella TABELLAore  poi potrei
eseguire qualcosa tipo
update TABELLAore
set fascia0800 = 1
where IDpersona = P1
ma questo devo ripeterlo per ogni fascia compresa tra 08.00 e 10.00
Con un ciclo come gli dico di mettere fasciaxxxx = 1
finche xxxx è compreso tra 08.00 e 10.00?
CIAO
Luca