Calcolare un periodo da date singole

lunedì 10 maggio 2010 - 17.24

RenatoZZZ Profilo | Newbie

Buongiorno a tutti,

ho un problema relativo alla creazione di un periodo partendo da una tabella di date elencate su un unico campo. Mi spiego meglio: in una tabella access i dati sono organizzati come segue:

Elemento1; ValoreA; DataDecorrenza
Elemento2; ValoreA; DataDecorrenza
Elemento2; ValoreB; DataDecorrenza
Elemento2; ValoreC; DataDecorrenza
Elemento2; ValoreB; DataDecorrenza
Elemento3; ValoreB; DataDecorrenza
. . . . . . . . .
ElementoN; ValoreN; DataDecorrenzaN

Da questi dati mi servirebbe ricavare, tramite una o più query, un recordset che restituisse:

Elemento1; ValoreA; DataDecorrenza; DataFine[=Oggi]
Elemento2; ValoreA; DataDecorrenza; DataFine[=DataDecorrenza - 1 giorno di (Elemento2; ValoreB; DataDecorrenza)]
Elemento2; ValoreB; DataDecorrenza; DataFine[=DataDecorrenza - 1 giorno di (Elemento2; ValoreC; DataDecorrenza)]
Elemento2; ValoreC; DataDecorrenza; DataFine[=DataDecorrenza - 1 giorno di (Elemento2; ValoreB; DataDecorrenza)]
Elemento2; ValoreB; DataDecorrenza; DataFine[=Oggi]
Elemento3; ValoreB; DataDecorrenza; DataFine[=Oggi]
. . . . . . . . .
ElementoN; ValoreN; DataDecorrenza; DataFine[=Oggi]

In altre parole avrei bisogno di generare un periodo di validità del valore per ciascun elemento del primo campo avendo a disposizione solo la data di decorrenza. Quando ad un elemento è abbinato un solo valore, il periodo di validità è quello compreso fra la data di decorrenza e oggi, se invece sono presenti più valori abbinati ad un elemento con date di decorrenza diverse, bisogna generare altrettanti periodi di validità (l’ultimo parte dalla data di decorrenza più recente e finisce oggi).

Grazie a tutti per l’ospitalità e in particolare a chi saprà / potrà aiutarmi.

Renato

================================================================

Per maggiore chiarezza faccio un altro esempio che semplifica il problema di cui sopra: avendo una tabella in cui sono elencati una serie di prodotti e il loro prezzo a partire da una certa data, come questa:

Prodotto; DataDecorrenza; PrezzoUnitario
Mele; 1/1/2010; 100
Mele; 1/3/2010; 80
Pere; 1/1/2008; 120
Pere; 1/6/2009; 150
Pere; 1/7/2009; 140

Avrei bisogno di generarne un'altra in cui sia presente non solo la data di inizio del prezzo ma anche la data di fine, come in questa:

Prodotto; DataDecorrenza; DataFine; PrezzoUnitario
Mele; 1/1/2010; 28/2/2010; 100
Mele; 1/3/2010; [Oggi]; 80
Pere; 1/1/2008; 31/5/2009; 120
Pere; 1/6/2009; 30/6/2009; 150
Pere; 1/7/2009; [Oggi]; 140

In questo modo, per ogni acquisto di un prodotto sarei in grado di calcolare l'importo in base alla data di acquisto, moltiplicando la quantità per il prezzo unitario corretto, secondo l'intervallo di date in cui è valido il prezzo.

Grazie ancora.

Renato
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5