Da una data ad un altra

di il
6 risposte

Da una data ad un altra

Un Saluto a tutti.
Sono un nuovo iscritto e vorrei sottoporvi un problrmma che mi assilla da qualche giorno:
ho una tabella dove ho un codice utente, un codice attivita, una data.
mi serve sapere per ogni utente da che data a che data ha svolto un attività, quanti giorni e durata l'attivita in questione escludendo i giorni non lavorativi che sono identificati con un altra attivita, esempio:

cod_utente: tizio, attivita ferie giorno 15/06/2012
cod_utente: tizio, attivita ferie giorno 16/06/2012
cod_utente: tizio, attivita non lavorativo giorno 17/06/2012
cod_utente: tizio, attivita ferie giorno 18/06/2012
il risultato dovra essere:
tizio da 15/06/2012 a 18/06/012 in ferie giorni 3.
detta cosi sembra semplice ma sono talmente scarso che non ne vengo a capo
grazie anticipaco a coloro che volessero aiutarmi.

6 Risposte

  • Re: Da una data ad un altra

    Non è affatto semplice... serve del codice e le idee chiare per il calcolo dei gg lavorativi.

    Ad esempio serve sapere qual'è il calendario lavorativo di cui parli... si tratta di un Normalista o di un Turnista...?
    Se turnista che cronolgico di turnazione ha...? (per i turnisti è molto complesso fare il calcolo...)

    Se fosse un normalista, quindi Lunedì÷Venerdì 8:00÷17:00 devi sapere oltre che ai Sabati e Domeniche, le feste comandate..., quindi Pasqua(che si calcola) Natale(25)... ed il Patrono...!

    Quì trovi un mio esempio:

    Scarica il file assegnando estensione ZIP.
  • Re: Da una data ad un altra

    Grazie per la risposta,
    non importa se sia turnista o no, mi serve per le assenze quindi devo considerare il codice di attività che quando è festivo o non lavorativo è sempre uguale,
    quindi il codice 1 è ferie il 2 non lavorativo.
    mi Spiego meglio: tabella con i seguenti dati, tanti utenti e dati di tutto l'anno.

    cod_utente cod_attivita giorno
    tizio 1 10/10/2012 (lavorativo)
    tizio 1 11/10/2012(lavorativo)
    tizio 2 12/10/2012(domenica)
    tizio 1 13/10/2012(lavorativo)

    mi serve tirare fuori
    tizio cod 1 (ferie) dal 10 al 13 giorni 3
    grazie
  • Re: Da una data ad un altra

    Mi sembra di capire che il campo Attività viene sempre compilato, quindi compare sempre e comunque un valore, che può essere sfruttato filtrandolo. Secondo me un semplice gioco di query risolve il problema. La mia soluzione è un po' grezza e passo passo, ma funziona.
    Rispondo alla domanda: PER OGNI UTENTE VOGLIO SAPERE QUANTI GIORNI DI FERIE HA FATTO DAL 15/6/2012 AL 18/6/2012

    1) Query di selezione dove importi la tabella in questione, trascini nella griglia i 3 campi e imposti i Criteri così:
    al campo Attività:
    Like "ferie"

    al campo Data:
    Between 15/06/2012 And 18/06/2012

    2) Salva con nome Query1
    3) Crea una nuova "Query ricerca duplicati", sfrutta la procedura guidata, importando Query1 e, avendo cura di calcolare i duplicati soltanto sul campo Utente che deve essere l'unico campo da visualizzare.
    4) Salva con nome Query2
    5) Vai in visualizzazione struttura Query2 e correggi dove trovi scritto >1, in >0

    Ovviamente, si può tutto ricostruire in una query sola, ho preferito ragionare passo passo.
  • Re: Da una data ad un altra

    Grazie, ma questo non é quello che cerco, ho molti utenti, oltre mille , non so da quando a quando,
    devo tirare i dati, poi li filtrerò con una query, chiedo aiuto per poter tirare fuori i dati come spiegato nei precedenti post, da a e quanti giorni, grazie per il tentativo comunque.
  • Re: Da una data ad un altra

    Ma allora la domanda è:
    Di UN UTENTE a scelta voglio sapere DA quando - A quando ha fatto un'Attivita (ad es. "ferie")

    Il mio ragionamento si può aggiustare. Alla Query1 modifica i Criteri in corrispondenza di Utente:
    Like [Digita l'Utente]

    a Criteri Attività:
    Like [Digita l'Attività]

    a Criteri Data:
    Between [Digita la Data Inizio] And [Digita la Data Fine]

    Diciamo pure che in questo modo, eviteresti la Query2, sfruttando il conteggio record di Query1.
    Query1 diventa una query con parametri. Volta per volta ti si aprirà una finestra dove ti viene posta la domanda che trovi scritta tra le parentesi quadre.
  • Re: Da una data ad un altra

    Grazie, cerchero di essere più chiaro,
    ho una tabella esportata da un softwere di gestione del personale, dove ho migliaia di campi registrati giornalmente di tutto il personale,
    giorno per giorno, tizio e in ferie, caio in malattia ecc ecc.
    devo tirare fuori una situazione giornaliera dove si specifica:
    tizio in ferie dalla data alla data per 5 gg; caio in malattia da data a data 8 gg; e via cosi per tutto il personale e per le molteplici attività(non lavorative, ferie, malattia, missioni,parentale ecc.)
    se non bastasse ci sono anche i sabati e le domeniche che hanno un codice identificativo.
    che va sottratto quando le ferie comprendono il venerdi e il lunedi (cod 1 venerdi e lunedi, codice 2 sabato e domenica, il risultato deve essere 2 giorni di ferie)
    mi augura di essere stato più esausivo.
    sto lavorando in codice e mi incarto tra if e endif
    non riesco a venire a capo grazie a tutti
Devi accedere o registrarti per scrivere nel forum
6 risposte