Case...When in sql

venerdì 27 giugno 2008 - 10.22

trinity Profilo | Guru

Ciao ragazzi,

prima di tutto ecco il codice della tabella archivio_mov:

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


all'interno di questa tabella vengono salvati dati di questo genere:


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


in altre parole avremo nella tabella 3 record due arrivati ma con flagriporto diverso ed un record partito.

io nella case when di sotto descritta mi serve per calcolare le presenze che sono dati da arrivi meno partiti.

solo che i record arrivi che devo considerare devono avere STATO=A e FLAGRIPORTO=0 e poi prendere i normali record partiti che avranno sempre FLAGRIPORTO=0


io ho scritto il seguente codice:

SELECT
a.*,
MAX(m.data_elaborazione)
As data,
Sum(Case m.stato
When 'A' then Convert(int , m.ncomp)
Else -Convert(int , m.ncomp)
End) As numero
FROM
albergo As a
LEFT JOIN archivio_mov AS m ON a.codalb = m.codalbergo AND a.codcomune = m.codcomalb

Come posso fare?

Grazie
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5