Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dead_thinker

Select complicado

Recommended Posts

Olá pessoal, bom dia, seguinte, tenho uma página de relatorio a qual passa 1 intervalo de datas pra uma consulta sql, acho que vou precisar usar join, não tenho certeza, queria uma luz sobre a melhor forma de fazer esse select, segue abaixo como ele está atualmente:

 

P.S.: Esse select é pra recuperar quantos checkins(entradas), checkouts(saidas) e os valores recebidos para as caixas que foram abertas no hotel durante o intervalo da pesquisa.

 

select distinct 	T1.numero,	(select cast(datepart(dd, T1.encerramento) as varchar(2)) +'/'+ cast(datepart(mm, T1.encerramento) as varchar(2)) +'/'+ cast(datepart(yy, T1.encerramento) as varchar(4))) as Data, 	(		(select isnull(count(*), 0) from estadia as sq1 where sq1.mot_caixaid = T1.caixaid and sq1.datain between '2006-01-12 00:00:00' and '2006-01-13 23:59:59')		+		(select isnull(count(*), 0) from historic as sq1 where sq1.caixaid_checkin = T1.caixaid and sq1.datain between '2006-01-12 00:00:00' and '2006-01-13 23:59:59' and sq1.mot_quartoid <> (select sq2.quartoid from quarto as sq2 where sq2.codigo = 'BAR'))	) as checkins, 	(select isnull(count(*), 0) from historic as sq1 where sq1.mot_caixaid = T1.caixaid and sq1.dataout between '2006-01-12 00:00:00' and '2006-01-13 23:59:59' and sq1.mot_quartoid <> (select sq2.quartoid from quarto as sq2 where sq2.codigo = 'BAR')) as checkouts, 	(select isnull(sum(sq1.valor), 0) from pagamento as sq1, historic as sq2 where sq1.mot_historicid = sq2.historicid and sq2.mot_caixaid = T1.caixaid and sq1.adiantamento = 0) as pag, 	(select isnull(sum(sq1.valor), 0) from adiantamento as sq1 where sq1.mot_caixaid = T1.caixaid) as adiant, 	(select isnull(sum(sq1.valor), 0) from histadiantamento as sq1 where sq1.mot_caixaid = T1.caixaid) as hist_adiant from 	caixa as T1, 	historic as T2 where 	T1.caixaid = T2.mot_caixaid and 	T1.encerramento between '2006-01-12 00:00:00' and '2006-01-13 23:59:59' group by 	T1.numero, T1.caixaid, T1.encerramento order by 	T1.numero asc, Data asc

 

Se alguem puder me ajudar agradeço, ja endoidei aqui de tanto tentar uma solução boa...q n encontrei :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.