Gestire alcune condizioni nella where sql...

lunedì 08 giugno 2015 - 11.18
Tag Elenco Tags  VB.NET  |  SQL Server 2008 R2

trinity Profilo | Guru

buongiorno

ho una tabella dati dove ci sono due campi denominati arrivo e partenza

ci possono essere dei casi in cui ci sono dei record che hanno arrivo nel mese di agosto e partenza nel mese di ottobre oppure record che hanno arrivo nel mese di settembre e partenza sempre nel mese di ottobre.

allora io devo eseguire un calcolo di una tassa la quale tassa si deve calcolare alla data di partenza del record e tale data deve rientrare nel range di periodo che io indico ma la stessa data di partenza non può essere superiore al 30/09.

Pertanto se volessi calcolare la tassa nel periodo di settembre ecco le 3 ipotesi che io devo gestire per selezionare i record che soddisfano la mia condizione:

arrivo 01/08/2015 - partenza 09/09/2015
arrivo 05/08/2015 - partenza 10/10/2015
arrivo 15/09/2015 - partenza 02/10/2015

perche nel primo record la partenza è a settembre e non ci sono problemi, nel secondo caso la partenza è a ottobre ma massimo si deve calcolare fino al 30/09 quindi tale record deve rientrare nel calcolo ma la cosa non so come gestirlo dato che anche il suo arrivo (qualora dovesse servire) è nel mese di agosto ed infine il terzo record è come il secondo con la comodità di avere l'arrivo a settembre (se dovesse servire)

Ecco non riesco a creare una where ad hoc per queste mie situazioni, spero che potete darmi un consiglio o aiuto....

Ciao
Cirillo Fabio
www.trycontact.com
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

boccia75 Profilo | Junior Member

Ciao Trinity,
se ho capito la tua necessità io farei in questo modo:

select .....
from......
where
'201509' between convert(varchar(6),arrivo,112) and convert(varchar(6),partenza,112)

In questo modo estrai tutte le righe aventi almeno un giorno di settembre compreso nell'intervallo arrivo-partenza.
Luca
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5