Scadenza fatture DF e DF FM

di
Anonimizzato14331
il
16 risposte

Scadenza fatture DF e DF FM

Salve a tutti..sto impazzendo con una query....

La tabella:
Data ordine TipoPagamento DataScadGiusta
03/01/2014 Bonifico 60 gg D.F. 03/03/2014
03/02/2014 Bonifico 60 gg D.F. 03/04/2014
28/02/2014 Bonifico 60 gg D.F. 28/04/2014
03/03/2014 Bonifico 60 gg D.F. 03/05/2014
03/04/2014 Bonifico 60 gg D.F. 03/06/2014
03/05/2014 Bonifico 60 gg D.F. 03/07/2014
03/06/2014 Bonifico 60 gg D.F. 03/08/2014
03/07/2014 Bonifico 60 gg D.F. 03/09/2014
31/07/2014 Bonifico 60 gg D.F. 03/10/2014
10/09/2014 Bonifico 60 gg D.F. 10/11/2014
10/10/2014 Bonifico 60 gg D.F. 10/12/2014
15/11/2014 Bonifico 60 gg D.F. 15/01/2015
10/12/2014 Bonifico 60 gg D.F. 10/02/2015
10/01/2014 Bonifico 60 gg F.M. 31/03/2014
13/02/2014 Bonifico 60 gg F.M. 30/04/2014
28/02/2014 Bonifico 60 gg F.M. 30/04/2014
14/03/2014 Bonifico 60 gg F.M. 31/05/2014
14/04/2014 Bonifico 60 gg F.M. 30/06/2014
14/05/2014 Bonifico 60 gg F.M. 31/07/2014
14/06/2014 Bonifico 60 gg F.M. 31/08/2014
15/07/2014 Bonifico 60 gg F.M. 30/09/2014
15/08/2014 Bonifico 60 gg F.M. 31/10/2014
18/09/2014 Bonifico 60 gg F.M. 30/11/2014
02/10/2014 Bonifico 60 gg F.M. 31/12/2014
18/11/2014 Bonifico 60 gg F.M. 31/01/2015
18/12/2014 Bonifico 60 gg F.M. 28/02/2015

L'Sql della query:

Scad1: IIf([fineMeserata1]=No;DateAdd("m";[GiornoRata1]/30;[DataFattura]);DateAdd("d";-1;CDate("01" & "/" & Month(DateAdd("d";[GiornoRata1];[DataFattura]))+1 & "/" & Year(DateAdd("d";[GiornoRata1];[DataFattura])))))

Come si vede sotto, mi fa i calcoli tutti giusti meno che il DF FM di Ottobre:

Data ordine TipoPagamento Scad1 DataScadGiusta
03/01/2014 Bonifico 60 gg D.F. 03/03/2014 03/03/2014
03/02/2014 Bonifico 60 gg D.F. 03/04/2014 03/04/2014
28/02/2014 Bonifico 60 gg D.F. 28/04/2014 28/04/2014
03/03/2014 Bonifico 60 gg D.F. 03/05/2014 03/05/2014
03/04/2014 Bonifico 60 gg D.F. 03/06/2014 03/06/2014
03/05/2014 Bonifico 60 gg D.F. 03/07/2014 03/07/2014
03/06/2014 Bonifico 60 gg D.F. 03/08/2014 03/08/2014
03/07/2014 Bonifico 60 gg D.F. 03/09/2014 03/09/2014
31/07/2014 Bonifico 60 gg D.F. 30/09/2014 03/10/2014
10/09/2014 Bonifico 60 gg D.F. 10/11/2014 10/11/2014
10/10/2014 Bonifico 60 gg D.F. 10/12/2014 10/12/2014
15/11/2014 Bonifico 60 gg D.F. 15/01/2015 15/01/2015
10/12/2014 Bonifico 60 gg D.F. 10/02/2015 10/02/2015
10/01/2014 Bonifico 60 gg F.M. 31/03/2014 31/03/2014
13/02/2014 Bonifico 60 gg F.M. 30/04/2014 30/04/2014
28/02/2014 Bonifico 60 gg F.M. 30/04/2014 30/04/2014
14/03/2014 Bonifico 60 gg F.M. 31/05/2014 31/05/2014
14/04/2014 Bonifico 60 gg F.M. 30/06/2014 30/06/2014
14/05/2014 Bonifico 60 gg F.M. 31/07/2014 31/07/2014
14/06/2014 Bonifico 60 gg F.M. 31/08/2014 31/08/2014
15/07/2014 Bonifico 60 gg F.M. 30/09/2014 30/09/2014
15/08/2014 Bonifico 60 gg F.M. 31/10/2014 31/10/2014
18/09/2014 Bonifico 60 gg F.M. 30/11/2014 30/11/2014
*02/10/2014Bonifico 60 gg F.M. 12/01/2014 31/12/2014
18/11/2014 Bonifico 60 gg F.M. 31/01/2015 31/01/2015
18/12/2014 Bonifico 60 gg F.M. 28/02/2015 28/02/2015

Non riesco a venirne a capo, eppure non mi sembra ci siano errori...
Grazie per l'aiuto
Fabrizio

16 Risposte

  • Re: Scadenza fatture DF e DF FM

    Puoi spiegare cosa dovrebbe fare quella strana Funzione di SOMMA per la quale non capisco il motivo per cui spezzetti tutto sommando parzialmente gg e mesi invece di sommare direttamente in [gg] alla data iniziale [GiornoRata1]...?

    Poi usa DateSerial per ricomporre una data... è più semplice...
  • Re: Scadenza fatture DF e DF FM

    Grazie per la risposta...
    Scusami ma non ho la competenza per sapere quale stringa è la migliore...a quella che hai trovato scritto sono arrivato dopo lunghe ricerche in rete...ti dirò che quella va tutto sommato bene anche se come dici è complessa il DateSerial mi riporta errori e non l'ho piu usata...quella di cui sopra calcola esattemente le scadenze come desidero fatta eccezione per il mese di ottobre DF FM
    Data ordine TipoPagamento Scad1 DataScadGiusta
    02/10/2014 Bonifico 60 gg F.M. 12/01/2014 31/12/2014
    E non capisco perchè solo il mese di ottobre
    Grazie ancora per la risposta
  • Re: Scadenza fatture DF e DF FM

    Se uso questa sembra che va bene:

    Scad1: IIf([fineMeserata1]=No;DateAdd("m";[GiornoRata1]/30;[DataFattura]);IIf([fineMeserata1]=Sì;DateSerial(Year([DataFattura]);Month([DataFattura]+[GiornoRata1])+1;0);[DataFattura]+[GiornoRata1]))
  • Re: Scadenza fatture DF e DF FM

    Ciao Fabrizio,
    come già suggerito da @Alex cosi dovresti risolvere...:
    
     DateSerial(Year([dataordine]);Month([dataordine])+3;1)-1
    
    un saluto.
  • Re: Scadenza fatture DF e DF FM

    No [Goku] quello che hai suggerito tu non va bene, e non è quello che ho detto io.

    Prova a sommare 3 mesi ad Ottobre o Novembre o Dicembre..., insomma prova a generare lo scavallamento di Anno...!

    La soluzione è DateAdd(....) sulla data completa, su cui inserire i 60gg...!
    DataProssima=DateAdd("d",DataUltima,60)
    Il DateSerial è solo più comodo che usare il Cdate ma non di certo per risolvere il problema.
  • Re: Scadenza fatture DF e DF FM

    Infatti, vero, aggiungo inoltre che nel mio caso ( anche se non so darvi una spiegazione) la stringa che mi da i risultati voluti è:
    Scad1: IIf([fineMeserata1]=No;DateAdd("m";[GiornoRata1]/30;[DataFattura]);IIf([fineMeserata1]=Sì;DateSerial(Year([DataFattura]);Month([DataFattura]+[GiornoRata1])+1;0);[DataFattura]+[GiornoRata1]))
    Risultato:
    Data ordine TipoPagamento Scad1 DataScadGiusta
    03/01/2014 Bonifico 60 gg D.F. 03/03/2014 03/03/2014
    03/02/2014 Bonifico 60 gg D.F. 03/04/2014 03/04/2014
    28/02/2014 Bonifico 60 gg D.F. 28/04/2014 28/04/2014
    03/03/2014 Bonifico 60 gg D.F. 03/05/2014 03/05/2014
    03/04/2014 Bonifico 60 gg D.F. 03/06/2014 03/06/2014
    03/05/2014 Bonifico 60 gg D.F. 03/07/2014 03/07/2014
    03/06/2014 Bonifico 60 gg D.F. 03/08/2014 03/08/2014
    03/07/2014 Bonifico 60 gg D.F. 03/09/2014 03/09/2014
    31/07/2014 Bonifico 60 gg D.F. 30/09/2014 30/09/2014
    10/09/2014 Bonifico 60 gg D.F. 10/11/2014 10/11/2014
    10/10/2014 Bonifico 60 gg D.F. 10/12/2014 10/12/2014
    15/11/2014 Bonifico 60 gg D.F. 15/01/2015 15/01/2015
    10/12/2014 Bonifico 60 gg D.F. 10/02/2015 10/02/2015
    10/01/2014 Bonifico 60 gg F.M. 31/03/2014 31/03/2014
    13/02/2014 Bonifico 60 gg F.M. 30/04/2014 30/04/2014
    28/02/2014 Bonifico 60 gg F.M. 30/04/2014 30/04/2014
    14/03/2014 Bonifico 60 gg F.M. 31/05/2014 31/05/2014
    14/04/2014 Bonifico 60 gg F.M. 30/06/2014 30/06/2014
    14/05/2014 Bonifico 60 gg F.M. 31/07/2014 31/07/2014
    14/06/2014 Bonifico 60 gg F.M. 31/08/2014 31/08/2014
    15/07/2014 Bonifico 60 gg F.M. 30/09/2014 30/09/2014
    31/07/2014 Bonifico 60 gg F.M. 30/09/2014 31/10/2014
    18/09/2014 Bonifico 60 gg F.M. 30/11/2014 30/11/2014
    02/10/2014 Bonifico 60 gg F.M. 31/12/2014 31/12/2014
    18/11/2014 Bonifico 60 gg F.M. 31/01/2014 31/01/2015
    18/12/2014 Bonifico 60 gg F.M. 28/02/2014 28/02/2015


    e non:
    Scad1: IIf([fineMeserata1]=No;DateAdd("m";[GiornoRata1]/30;[DataFattura]);IIf([fineMeserata1]=Sì;DateSerial(Year([DataFattura]);Month([DataFattura]+[GiornoRata1])+3;1)-1;[DataFattura]+[GiornoRata1]))

    Risultato:

    Data ordine TipoPagamento Scad1 DataScadGiusta
    03/01/2014 Bonifico 60 gg D.F. 03/03/2014 03/03/2014
    03/02/2014 Bonifico 60 gg D.F. 03/04/2014 03/04/2014
    28/02/2014 Bonifico 60 gg D.F. 28/04/2014 28/04/2014
    03/03/2014 Bonifico 60 gg D.F. 03/05/2014 03/05/2014
    03/04/2014 Bonifico 60 gg D.F. 03/06/2014 03/06/2014
    03/05/2014 Bonifico 60 gg D.F. 03/07/2014 03/07/2014
    03/06/2014 Bonifico 60 gg D.F. 03/08/2014 03/08/2014
    03/07/2014 Bonifico 60 gg D.F. 03/09/2014 03/09/2014
    31/07/2014 Bonifico 60 gg D.F. 30/09/2014 30/09/2014
    10/09/2014 Bonifico 60 gg D.F. 10/11/2014 10/11/2014
    10/10/2014 Bonifico 60 gg D.F. 10/12/2014 10/12/2014
    15/11/2014 Bonifico 60 gg D.F. 15/01/2015 15/01/2015
    10/12/2014 Bonifico 60 gg D.F. 10/02/2015 10/02/2015
    *10/01/2014 Bonifico 60 gg F.M. 31/05/2014 31/03/2014
    *13/02/2014 Bonifico 60 gg F.M. 30/06/2014 30/04/2014
    *28/02/2014 Bonifico 60 gg F.M. 30/06/2014 30/04/2014
    *14/03/2014 Bonifico 60 gg F.M. 31/07/2014 31/05/2014
    *14/04/2014 Bonifico 60 gg F.M. 31/08/2014 30/06/2014
    *14/05/2014 Bonifico 60 gg F.M. 30/09/2014 31/07/2014
    *14/06/2014 Bonifico 60 gg F.M. 31/10/2014 31/08/2014
    *15/07/2014 Bonifico 60 gg F.M. 30/11/2014 30/09/2014
    *31/07/2014 Bonifico 60 gg F.M. 30/11/2014 31/10/2014
    *18/09/2014 Bonifico 60 gg F.M. 31/01/2015 30/11/2014
    *02/10/2014 Bonifico 60 gg F.M. 28/02/2015 31/12/2014
    *18/11/2014 Bonifico 60 gg F.M. 31/03/2014 31/01/2015
    *18/12/2014 Bonifico 60 gg F.M. 30/04/2014 28/02/2015

    Grazie a tutti
    Fabrizio
  • Re: Scadenza fatture DF e DF FM

    Ciao Fabrizio

    non capisco come mai ma da ieri sera non riesco + a scrivere su groups

    hai una mail?

    Grazie
  • Re: Scadenza fatture DF e DF FM

    Si certo:
  • Re: Scadenza fatture DF e DF FM

    Anch'io non riesco a scrivere sull'altro forum..ecco perchè cambiato
  • Re: Scadenza fatture DF e DF FM

    Ciao, ho testato la soluzione con la tabella di NortWind , tabella ordini per semplicità :
    
    
    Data ordine	dd
    
    12-mag-74	31/07/1974
    11-mag-74	31/07/1974
    30-ott-98	31/12/1998
    30-nov-98	31/01/1999
    25-nov-98	31/01/1999
    
    
    l'anno viene scavallato, correttamente.
    un saluto.
  • Re: Scadenza fatture DF e DF FM

    Ti ringrazio ma non sono in grado di verificare con NortWind, ho un db fo' e disfo' quello....
  • Re: Scadenza fatture DF e DF FM

    Comunque in risposta a Pfmarro, nel db che ho inviato, la query pagamenti2, restituisce tutti i valori giusti, la stringa:
    Scad1: IIf([fineMeserata1]=No;DateAdd("m";[GiornoRata1]/30;[Data]);IIf([fineMeserata1]=Sì;DateSerial(Year([Data]);Month([Data]+[GiornoRata1])+1;0);[Data]+[GiornoRata1]))
    sarà anche sbagliata e contorta, ma il risultato c'è.....
  • Re: Scadenza fatture DF e DF FM

    Buongiorno Fabrizio e buona domenica a te.
    Il database di NorthWind l'ho preso come riferimento per il test...
    Adatta i nomi dei campi al suggerimento che ti ho indicato e testalo su una query al posto della tua iif.....

    un saluto.
  • Re: Scadenza fatture DF e DF FM

    Ok capito...in giornata provo...
    grazie
Devi accedere o registrarti per scrivere nel forum
16 risposte