Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Calcolare su valori numerici in sequenza dello stesso campo

  1. #1
    RoBot57 non è in linea Novello
    Salve, espongo il mio problema sperando in una soluzione.
    Dovendo costruire un database basato sulle timbrature orarie personali e dei colleghi per i vari calcoli di straordinari ferie ecc. volevo organizzarlo in questo modo:

    ID_prog: 1 timbratura: 8,00
    ID_prog: 2 timbratura: 12,30
    ID_prog: 3 timbratura: 13,30
    ID_prog: 4 timbratura: 16,30

    vorrei poter fare le singole progressive differenze tra timbratura 2 (12,30) e timbratura 1 (8,00), tra timbratura 3 (13,30) e timbratura 2 (12,30) e tra timbratura 4 (16,30) e timbratura 3 (13,30) al fine di calcolare il tempo lavorato e la pausa pranzo fermo restando che le timbrature potrebbero essere più numerose per via di servizi esterni o permessi ecc...
    Ho indicato solo il caso classico per comodità.
    Spero di essermi spiegato chiaramente e di poter ottenere una soluzione al mio problema.
    Grazie
    Romano
    Ultima modifica di AntonioG; 18-10-2014 08:55 

  2. #2
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Quote Originariamente inviato da RoBot57
    ID_prog: 1 timbratura: 8,00
    ID_prog: 2 timbratura: 12,30
    ID_prog: 3 timbratura: 13,30
    ID_prog: 4 timbratura: 16,30
    È l'unica tabella che hai? 2 soli campi?

  3. #3
    RoBot57 non è in linea Novello
    Quote Originariamente inviato da OsvaldoLaviosa Visualizza il messaggio
    È l'unica tabella che hai? 2 soli campi?
    Per il momento si, anche perchè se non risolvo quel problema non posso andare avanti.
    A quella che ho indicato manca il campo [giorno] che collegherò in seguito ad una tabella CALENDARIO.

  4. #4
    L'avatar di nman
    nman non è in linea Scribacchino
    Quote Originariamente inviato da RoBot57 Visualizza il messaggio
    ID_prog: 1 timbratura: 8,00
    ID_prog: 2 timbratura: 12,30
    ID_prog: 3 timbratura: 13,30
    ID_prog: 4 timbratura: 16,30
    il tuo problema sarebbe facilmente risolvibile, ma manca un dato ?
    a parte il giorno che è superabile
    ti manca il IdUtente.
    Oppure la registrazione è ad utente unico ???

    ragioniamo in termini minimissimi e senza citare per il momento codice o formule

    ti hai una tabella (chiamiamola "T1" ) con un solo campo
    - Timb -- ( è la tua timbratura )
    - del campo ID_prog "no te ne frega nulla" ( non sono bravo con il dialetto )

    logicamente le registrazioni sono alternate, dopo ogni entrata segue una uscita e poi segue una entrata

    ti costruisci una tabella ( Chiamiamola T2 ) in cui riversare quei dati in 2 campi
    - Ing
    - Usc

    le operazioni stilizzate sono queste

    -- metti in ordine crescente la tabella T1 sul suo unico campo Timb
    -- su questa generi un RecordSet
    -- scorri il RecordSet dal passato verso il futuro
    -- Verifichi se in T2 esiste un record vuoto al campo Usc ( Tipicamente l'ultimo )
    ------ Se non esiste fai INSERT di T1.Timb in T2.Ing
    ------ Se esiste fai UPDATE di T1.Timb in T2.Usc WHERE T2.Usc è vuoto

    Pero ti ripeto devi risolvere il problema dell' IDUtente

    Dacci qualche dettaglio in più perché forse ti basterebbe una più sempilce SELECT senza costruirti la tabella T2


    Facci sapere
    Ultima modifica di nman; 17-10-2014 23:47 

  5. #5
    RoBot57 non è in linea Novello
    Quote Originariamente inviato da nman Visualizza il messaggio
    il tuo problema sarebbe facilmente risolvibile, ma manca un dato ?
    a parte il giorno che è superabile
    ti manca il IdUtente.
    Oppure la registrazione è ad utente unico ???

    ragioniamo in termini minimissimi e senza citare per il momento codice o formule

    ti hai una tabella (chiamiamola "T1" ) con un solo campo
    - Timb -- ( è la tua timbratura )
    - del campo ID_prog "no te ne frega nulla" ( non sono bravo con il dialetto )

    logicamente le registrazioni sono alternate, dopo ogni entrata segue una uscita e poi segue una entrata

    ti costruisci una tabella ( Chiamiamola T2 ) in cui riversare quei dati in 2 campi
    - Ing
    - Usc

    le operazioni stilizzate sono queste

    -- metti in ordine crescente la tabella T1 sul suo unico campo Timb
    -- su questa generi un RecordSet
    -- scorri il RecordSet dal passato verso il futuro
    -- Verifichi se in T2 esiste un record vuoto al campo Usc ( Tipicamente l'ultimo )
    ------ Se non esiste fai INSERT di T1.Timb in T2.Ing
    ------ Se esiste fai UPDATE di T1.Timb in T2.Usc WHERE T2.Usc è vuoto

    Pero ti ripeto devi risolvere il problema dell' IDUtente

    Dacci qualche dettaglio in più perché forse ti basterebbe una più sempilce SELECT senza costruirti la tabella T2


    Facci sapere
    Grazie per la risposta. Nel frattempo che la esamino e cerco di capire ti dico che le timbrature sono ad utente unico, nel senso che ognuno di noi se le gestisce autonomamente.
    Ciao

  6. #6
    OsvaldoLaviosa non è in linea Topo di biblioteca
    A me sembra come se tu vuoi n database per n Utenti. A che serve?
    Se ho sbagliato a interpretare, una tabella Utenti è fondamentale e ogni Timbratura DEVE avere per forza un qualcosa che identifichi l'utente Mario Rossi da Francesco Brambilla. nman ha parlato di IDUtente...

  7. #7
    RoBot57 non è in linea Novello
    Quote Originariamente inviato da OsvaldoLaviosa Visualizza il messaggio
    A me sembra come se tu vuoi n database per n Utenti. A che serve?
    Se ho sbagliato a interpretare, una tabella Utenti è fondamentale e ogni Timbratura DEVE avere per forza un qualcosa che identifichi l'utente Mario Rossi da Francesco Brambilla. nman ha parlato di IDUtente...
    Io vorrei un database che gestisca SOLO le mie timbrature. Non ho la necessità di memorizzare i dati degli altri miei colleghi. Abbiamo già un ufficio personale per questo.
    Questa "macchinetta", chiamiamola così, l'ho pensata inizialmente per me e se funziona per ognuno dei miei colleghi, che vorrà usufruirne.

  8. #8
    L'avatar di nman
    nman non è in linea Scribacchino
    Anche a me sembra troppo strano senza IdUtente !!

    ma dopotutto se è solo per un utente ....

    .

  9. #9
    RoBot57 non è in linea Novello
    Quote Originariamente inviato da nman Visualizza il messaggio
    Anche a me sembra troppo strano senza IdUtente !!

    ma dopotutto se è solo per un utente ....

    .
    Scusa...forse mi sfugge qualcosa. Mi spieghi dove sta la stranezza?

  10. #10
    L'avatar di nman
    nman non è in linea Scribacchino
    Involontariamente mi sono espresso in modo da poter essere frainteso,

    strano perche se fai un DB solitamente è per gertire molti utenti,
    se devi solamente contrillare 1 utente basterebbe un appunto, o un foglio di Excel

    ma certamente e possibile farlo anche anche con un DB

    i tempi si evolvono e cambiano gli strumenti in uso ........


    Comunque stando cosi le cose confermo quello che ti ho lasciato
    intravedere nell' ultima riga del mio primo post
    " ti basta una "SELECT....." per trovare le ore di lavoro effettive "


    .

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Articolo: [MsSQL]Convertire valori numerici in valori scritti
    Da bumm nel forum Microsoft SQL Server
    Risposte: 1
    Ultimo Post: 31-05-2016, 20:18
  2. Somma di 2 o + campi dello stesso record
    Da SNEIK75 nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 16-10-2012, 13:11
  3. Stampa più copie dello stesso report
    Da seamission nel forum Microsoft Word
    Risposte: 18
    Ultimo Post: 22-05-2010, 19:58
  4. Risposte: 0
    Ultimo Post: 17-03-2009, 12:59
  5. Ricerca in più campi dello stesso record
    Da Cis nel forum Visual Basic 6
    Risposte: 8
    Ultimo Post: 17-08-2006, 08:23