E funziona solo che non mi da il risultato che voglio...ti spiego ecco la stored modificata:
ALTER PROCEDURE [dbo].[GetRitardi_new]
(
@data1 as Datetime,
@data2 as Datetime
)
AS
BEGIN
WITH alberghi_step1 AS
(
SELECT
alb.codalb,
alb.descrizione,
alb.codcomune,
alb.Tel
FROM dbo.albergo as alb
JOIN
dbo.Apertura_chiusura as Ap
ON alb.Codalb=Ap.codalbergo and alb.CodComune=Ap.codcomune
Where Ap.Datafineattivita='9999-01-01' and
(datatemp1='9999-01-01'
or (datatemp1 > @data1 and datatemp2>=@data2)
or (datatemp1<=@data1 and datatemp2<@data2))and
(data1='9999-01-01'
or (data1 > @data1 and data2>=@data2)
or (data1<=@data1 and data2<@data2))
and
(data3='9999-01-01'
or (data3 > @data1 and data4>=@data2)
or (data3<=@data1 and data4<@data2))
and
(data5='9999-01-01'
or (data5 > @data1 and data6>=@data2)
or (data5<=@data1 and data6<@data2))
and
(data7='9999-01-01'
or (data7 > @data1 and data8>=@data2)
or (data7<=@data1 and data8<@data2))
)
SELECT
A.Codalb,A.Descrizione,A.CodComune,A.Tel
FROM
alberghi_step1 A
Left JOIN dbo.Notifiche N
ON A.codalb = N.codalbergo and A.Codalb=N.codcomune
Where N.datanotifica Not Between @data1 and @data2
ORDER BY A.codalb,A.CodComune
END
in pratica ti spiego quelloche mi serve: Allora la prima select serve a vedere in base alle date che io passo quali strutture sono aperte oppure no. Il risultato mi da le strutture aperte, poi queste strutture devo essere analizzate nella tabella notifiche ossia se una struttura è aperta deve scrivere delle notifiche. a me serve con la seconda select prendere le strutture aperte che non hanno scritto nessuna notifica. ogni struttura che scrive una notifica viene registrata la data del mese di riferimento sempre il primo dii ogni mese..pertanto pensavo di gestire la seconda select con una between e prendere tutti i record che non rientrano nel periodo indicato...
esempio la prima select mi restituisce i seguneti alberghi:
codalb codcomune descrizione
1 59032 albergo1
3 59032 albergo3
ora l'albergo1 nel periodo dal:01-02-2010 al:28-02-2010 inserisce una notifica...pertanto il risultato finale della stored mi dovrebbe solo rilevare l'albergo3 che non ha inserito nessuna notifica.
Con la stored che ho postato ora questo non funziona. Dove sbaglio?
Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com