Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Risalire al mese di caricamento fattura

    Buona domenica a tutti.

    Ho una tabella in cui registo il "Fornitore", il "Numero fattura", la "Data fattura", l'"importo fattura" ed il "mese" relativo alla fattura, ad esempio:

    codice:
    NR_FATTURA	FORNITORE     DATA_FATTURA	IMPORTO		MESE
    136	        BENQ	      2005/12/04	300,00 €	Dicembre
    Dovrei adesso controllare che SE per i sei mesi precedenti al mese corrente, quel fornitore ha emesso altre fatture, ad esempio siamo a dicembre dovrei sapere se il fornitore BENQ ha emesso fatture anche per i mesi di: novembre, ottobre, settembre, agosto, luglio e giugno.

    Riesco al momento a risalire ai 6 mesi precedenti rispetto al mese corrente con la funzione dateadd ed un array, ma non riesco ad impostare la query di estrazione.

    codice:
    nrMese = (Month(Date))
    strMese = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMese)
    
    nrMeseprec = Month(DateAdd("m", -6, Date))
    strMesePrec = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec)
    
    nrMeseprec0 = Month(DateAdd("m", -5, Date))
    strMesePrec0 = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec0)
    
    nrMeseprec1 = Month(DateAdd("m", -4, Date))
    strMesePrec1 = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec1)
    
    nrMeseprec2 = Month(DateAdd("m", -3, Date))
    strMesePrec2 = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec2)
    
    nrMeseprec3 = Month(DateAdd("m", -2, Date))
    strMesePrec3 = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec3)
    
    nrMeseprec4 = Month(DateAdd("m", -1, Date))
    strMesePrec4 = (Array("","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"))(nrMesePrec4)
    Grazie

  2. #2
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    DATA_FATTURA è un campo di tipo testo?

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da longline
    DATA_FATTURA è un campo di tipo testo?
    No è un campo data/ora aaaa/mm/gg...

  4. #4
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Ok, io controllerei le fatture semplicemente facendo una query che controlli l'esistenza di fatture di un fornitore con data compresa tra il primo e l'ultimo giorno dei sei mesi precedenti.

    codice:
    DataOggi = Date()
    
    'trovi l'ultimo giorno del mese precedente al mese corrente
    DataFine = DataOggi - Day(DataOggi) -1 
    
    ' trovi il primo giorno del periodo da controllare
    DataInizio = DateAdd("m", -6, DataFine)
    DataInizio = DataInizio + 1 - Day(DataInizio)
    
    ' ecco l'sql che elenca le fatture dei sei mesi precedenti
    SQL = "SELECT * FROM Fatture WHERE Fornitore = " & idFornitore & " AND DataFattura BETWEEN #" & DataInizio & "# AND #" & DataFine & "#"

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie per il suggerimento, ma purtroppo non fa al mio caso in quanto la data_fattura (data di emissione) non coincide mai con la data di pagamento della fattura.

    La necessità è quella di lavorare una query che faccia riferimento alla colonna della tabella chiamata "Mese" (che è stata apposta inserita per questo tipo di controllo), in cui è registrato il mese di riferimento.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    a colonna chiamata mese dovrebbe tradursi in un qualcosa molto simile a

    2005/12/01 oppure 2005/12/31

    In questo sempre di dicembre si parla ma lo puoi gestire sotto forma di data come a te serve.

    Roby

  7. #7
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    a colonna chiamata mese dovrebbe tradursi in un qualcosa molto simile a

    2005/12/01 oppure 2005/12/31

    In questo sempre di dicembre si parla ma lo puoi gestire sotto forma di data come a te serve.

    Roby
    Si infatti lo gestisco come numero del mese, nel caso di dicembre 12, ma non ho capito cosa devo fare?

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Se ho capito bene il consiglio di Roby_72, la pensiamo allo stesso modo: il campo MESE dovrebbe contenere una data vera e propria, non solo l'indicazione del mese! In questo modo il codice che ti ho postato andrebbe semplicemente adattato in modo da operare su qualsiasi campo (in formato data/ora) tu volessi operare.

    Tra l'altro nota che in un elenco di fatture di più anni, incontrare un record con scritto "gennaio" in un campo non ti dà la minima idea di quale sia l'anno a cui appertenga questo mese di gennaio, senza guardare anche la data della fattura. ASSURDO! Modifica subito quel campo: così com'è ora è solo una palla al piede.

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.