mi aiutate, se potete, a scrivere la seguente query?
ho una tabella(tab1):
ID | ID_Prod | data_inizio | data_fine
1 | 1 | 20080601 | 20081231
2 | 1 | 20080501 | 20081030
3 | 1 | 20070501 | 20071130
...
I campi data inizio e data fine definiscono la scadenza di un prodotto.
Ma nella prima riga il prodotto vale 6 mesi e nella seconda il medesimo
prodotto vale 5 mesi e si parla di periodi accavallati. Questo nella mia
tabella può accadere spesso e devo porre rimedio con degli alert.
Ora vorrei creare una select che mi indichi quale ID sgarra dicendo che
"il prodotto ha più periodi di inizio e fine inseriti". Relativi
comunque all'anno corrente.
Se vedete le date si accavallano. Mi potreste aiutare?
Io pensavo:
"select id, id_prod where year(data_inizio) = year(now) and
year(data_fine) = year(now) and ..."
Boh poi non so che scrivere... Qualche help?
Grazie!
Il termine giusto e` intervalli; un intervallo e` il tempo realmente
trascorso tra due eventi ancorati sulla linea temporale.
Es. "Tra le 12 e le 14 ho l'intervallo del pranzo".
Un periodo e` invece un concetto astratto e svincolato dalla
linea temporale. "La gravidanza dura un periodo di 9 mesi".
La verifica la puoi fare sia con query sia con vincolo che
blocca intervalli sovrapposti all'inserimento in tabella. Vedi msg.:
ciao
Scusami la terminologia...
Senti ma se io ho 2 date: dal 01/09/2008 al 31/12/2010 e dovessi vedere
se tra le 2 date è compreso il periodo tra 01/01/2009 e 31/12/2009.
Come faccio?
Grazie!
Ho scritto così:
[CUT]
(Data_inizio Between 20090101 And 20091231) Or
(Data_termine Between 20090101 And 20091231)
Ma non funzia... idee?
> Senti ma se io ho 2 date: dal 01/09/2008 al 31/12/2010 e dovessi vedere
> se tra le 2 date è compreso il periodo tra 01/01/2009 e 31/12/2009.
>
> Come faccio?
Qui e` banale logica... :)
where 20090101>20080901 and 20091231<20101231
detto in soldoni. In pratica ti basta vedere se il periodo inizia dopo la
data iniziale e finisce prima della data finale.
Oppure la domanda e` mal posta. :)
Bye.
Si scusami ho mal posto la mia domanda credo... cmq mi è bastato
pranzare per trovare la soluzione :P
Anche io me l'ero mal posta immagino visto che era effettivamente banale
la risposta!!!
A me bastava verificare se l'anno 2009 fosse compreso nel periodo...
quindi ho proprio toppato l'argomento... scusa :(
Grazie cmq per l'interessamento e la risposta!