Torna al Thread
ALTER PROCEDURE [dbo].[Imposta_Soggiorno]
@start as datetime,
@end as datetime
AS
BEGIN
CREATE TABLE #tblTemp
(
CodiceAlbergo Int,
Denominazione Varchar(100),
Indirizzo Varchar(80),
Classificazione Varchar(50),
Comune Varchar(30),
Provincia Varchar(30),
Presenze Int,
ImportoTassa Numeric(18,2),
TotaleImposta Numeric(18,2)
)
INSERT INTO #tbltemp (codicealbergo,
denominazione,
indirizzo,
classificazione,
comune,
provincia,
presenze,
importotassa,
totaleimposta)
select allog.codice_albergo,
alb.descrizione,
alb.indirizzo,
categoria.descrizione as Categoria,
comune.descrizione as Comune,
provincia.descrizione as Provincia,
Sum(case when DATEDIFF("dd", data_arrivo, case when convert(varchar(8),data_partenza,112)<@end then data_partenza
else @end end)=0
then 1 else
DATEDIFF("dd", data_arrivo, case when convert(varchar(8),(case when data_partenza='1900-01-01' then NULL else data_partenza END),112)<@end then data_partenza
else @end end) END) as Presenze,
--allog.codice_scheda,
imposta.ImportoTassa,
Sum(case when DATEDIFF("dd", data_arrivo, case when convert(varchar(8),(case when data_partenza='1900-01-01' then NULL else data_partenza END),112)<@end then data_partenza
else @end end)=0
then 1 * imposta.importotassa else
DATEDIFF("dd", data_arrivo, case when convert(varchar(8),(case when data_partenza='1900-01-01' then NULL else data_partenza END),112)<@end then data_partenza
else @end end) * imposta.importotassa END) as ImpostaSoggiorno
from tab_alloggiati as allog
Join
tab_alberghi as alb
On allog.codice_albergo=alb.codice
Join
tab_comuni as comune
On Alb.comune_codice=comune.codice
Join
tab_provincie as provincia
On Alb.provincia_codice=provincia.codice
Join
tab_categorie as categoria
On Alb.categoria_codice=categoria.codice
Join
tab_imposta_soggiorno as imposta
On categoria.codice_istat=imposta.idcategoria
where
convert(varchar(8),isnull(data_arrivo,@end),112) between @start and @end
group by
allog.codice_albergo,
alb.descrizione,
alb.indirizzo,
categoria.descrizione,
comune.descrizione,
provincia.descrizione,
--allog.codice_scheda,
DATEDIFF("dd", data_arrivo, case when convert(varchar(8),data_partenza,112)<@end then data_partenza
else @end end),
imposta.importotassa
having DATEDIFF("dd", data_arrivo, case when convert(varchar(8),data_partenza,112)<@end then data_partenza
else @end end )<=7
select
denominazione,
indirizzo,
classificazione,
comune,
provincia,
sum(presenze) as presenze,
importotassa,
sum(totaleimposta)as totaleimposta from #tbltemp
Group by
denominazione,indirizzo,classificazione,comune,provincia,importotassa
END