Select con gestione del Case...when

martedì 09 febbraio 2010 - 11.57

trinity Profilo | Guru

Ciao tutti,
ho creato questa select:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ora eccetto dataupdate gli altri campi sono colonne fisicamente esistenti, solo che io devo aggiungere a questa select una Where dove si devono selezionare solo i record che hanno dataupdate Is Null ma ovviamente non mi funziona perchè mi dice che la colonna non esiste.
Come posso procedere?

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

carloalberto Profilo | Junior Member


>
>Ora eccetto dataupdate gli altri campi sono colonne fisicamente
>esistenti, solo che io devo aggiungere a questa select una Where
>dove si devono selezionare solo i record che hanno dataupdate
>Is Null ma ovviamente non mi funziona perchè mi dice che la colonna
>non esiste.
>Come posso procedere?

non sara elagante ma se quella select la fai diventare una vista... poi il campo dataupdate c'è e quindi la where diventa facile .. oppure ti crei una tab temporanea su cui fai la select ...
ciao

alx_81 Profilo | Guru

>non sara elagante ma se quella select la fai diventare una vista...
>poi il campo dataupdate c'è e quindi la where diventa facile
>.. oppure ti crei una tab temporanea su cui fai la select ...
Non trovo che questa soluzione sia inelegante. Anzi..
Diciamo che puoi evitare la vista usando una bella CTE:

;WITH AlbergoUpdate (CodStruttura, Codcomune, NomeStruttura, Telefono, DataUpdate) AS ( SELECT CodStruttura , Codcomune , NomeStruttura , Telefono , DataUpdate = ( SELECT MAX( CASE WHEN DataArrivo>= IsNull(DataPartenza,'19000101') THEN DataArrivo ELSE DataPartenza END) FROM dbo.Archivio_mov_new Where codalbergo=Albergo.CodStruttura and codcomalbergo=Albergo.codcomune and dataarrivo between @data1 and @data2 and IsNull(DataPartenza,'19000101') <= @data2 and DataUpdate Is Null ) FROM Albergo ) SELECT CodStruttura , Codcomune , NomeStruttura , Telefono , DataUpdate FROM AlbergoUpdate WHERE DataUpdate IS NULL

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

trinity Profilo | Guru

Grazie mille raga, funziona!
;)

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5