Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    date - conteggiare i giorni degli anni precedenti escluso quello in corso

    Ciao a tutti .... rieccomi

    data la tabella [prestazioni] e dati i campi [data1] e [data2] [formato data AAAA-MM-GG]

    volevo sapere se una query potesse estrarre i dati in questo modo:

    calcolare la differenza in giorni tra data1 e data2 escluso l'anno in corso

    supponendo che l'anno in corso sia il 2006
    esempio:

    data1 data2 tot giorni
    ------------------------------------------------
    10/02/2005 12/02/2005 2
    20/01/2004 29/01/2004 9
    01/10/2005 10/10/2005 9
    01/02/2006 05/02/2006 - non conteggiare [anno in corso]
    20/04/2006 22/04/2006 - non conteggiare [anno in corso]
    03/01/2005 05/01/2005 2
    ------------------------------------------------

    ecc... ecc...


    grazie per l'aiuto
    Quello che noi osserviamo non è la natura in se stessa, ma la natura esposta al nostro metodo di interrogazione.Werner Heisenberg

  2. #2
    metti la condizione nel where....

    where data2 < '2006-01-01'

    esclude anche il range di date che potrebbe trovarsi a cavallo del 2005-2006

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    gentilissimo piero.mac , grazie ma il mio problema è estrarre
    le date in riferimento all'anno ...ovvero :

    mettiamo il caso :
    10/02/2005 12/02/2005 2
    10/01/2004 29/01/2004 19
    01/10/2005 20/10/2005 9
    01/02/2006 05/02/2006 - non conteggiare [anno in corso]
    20/04/2006 22/04/2006 - non conteggiare [anno in corso]
    03/01/2005 15/01/2005 12
    01/01/2004 09/01/2004 8



    allora la query deve estrarre :
    il riferimento all'anno : 2005:
    10/02/2005 12/02/2005 = 2
    03/01/2005 15/01/2005 = 12
    ------------------------------ 2005 totale = 24
    il riferimento all'anno : 2004:
    20/01/2004 29/01/2004 = 9
    01/01/2004 09/01/2004 = 8
    ------------------------------ 2004 totale = 17

    01/02/2006 05/02/2006 - non conteggiare [anno in corso]
    20/04/2006 22/04/2006 - non conteggiare [anno in corso]

    quindi totale giorni estratti conteggiando 2004 e 2005 = 24+17 =41

    ....

    piero.mac sai perhè mi serve questa query ?? ti spiego

    sto completando un framework per la gestione di un intero dipartimento
    e adesso sono fermo nella gestione ferie ..perchè vorrei estrarre il residuo delle
    ferie non smaltite negli anni precedenti ..quindi mettiamo caso : le ferie del dipendente corrispondono a 36 giorni/anno
    adesso...supponiamo che lo stesso abbia preso nell'anno precedente 20 giorni
    ..ne rimangono 16 da smaltire [36-20=16] ...bene..
    sono proprio queste che devo calcolarmi come residuo da aggiungere a quelle dell'anno in corso arrivando quindi al totale di 36+16=52 giorni di ferie all'anno in corso.

    piero.mac sappiamo tutti senza ogni dubbio che sei un "grande"

    cosa proponi per risolvere il problema ..non ha importanza che sia query o codice php

    GRAZIE in anticipo.
    Quello che noi osserviamo non è la natura in se stessa, ma la natura esposta al nostro metodo di interrogazione.Werner Heisenberg

  4. #4
    I giorni di ferie comprendono anche festivi nel range da ... a??? se si il calcolo penso vada valutato solo sui giorni feriali e l'affare si complica.

    per un semplice conteggio con mysql >= 4.1.3 puoi usare DATEDIFF(), molto comodo. Dato due date in input rende la differenza in giorni. se usi mysql <= 4.0.x dovresti usare TO_DAYS()

    Il codice lo devi adeguare alla tua realta' .... posto un esempio:

    codice:
    SELECT *,
    datediff(data2, data1) as tot
    from tab
    where data2 < '2006-01-01'
    oppure se vuoi raggruppare i totali giorni per utente

    codice:
    SELECT *,
    SUM(datediff(data2, data1)) as tot
    from tab
    where data2 < '2006-01-01'
    group by utente
    Se poi devi aggiungere o togliere da 36 .... non credo sia un problema. Ho avuto un gestionale proveniente da un foglio excel in cui i dati ferie e ferie_residue costituivano due colonne della tabella utenti che venivano aggiornate nel momento in cui si usufruivano. Le ho mantenute anche se sono campi calcolati, perche' semplificavano di molto la gestione ferie. Prima si dovevano consumare le residue e con una loro scadenza e mensilmente dovevano essere segnalate nel cedolino, poi quelle dell'anno con scadenza ovviamente nell'anno successivo.

    vedi tu....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.