Tengo el siguiente proc:
ALTER proc [dbo].[reporte_asis_cli] @fini datetime, @ffin datetime,@tipo
int,@xtotal int output
as
declare @msuma int
set @msuma = 0
if @tipo = 0
begin
declare @cuenta int, @mihora int,@dia datetime,@campo varchar(25)
set @cuenta = 1
set @mihora = 8
create table #asiste(hora char(8))
while @cuenta <
begin
if @mihora <= 11
begin
insert into #asiste
values(replicate('0',2-len(ltrim(str(@mihora))))+ltrim(str(@mihora))+':00
am')
end
else
begin
insert into #asiste
values(replicate('0',2-len(ltrim(str(@mihora))))+ltrim(str(@mihora))+':00
pm')
end
set @cuenta = @cuenta + 1
set @mihora = @mihora + 1
end
declare @texto varchar(3500), @corre char(8),@hishora int
set @dia = @fini
while @dia <= @ffin
begin
set language spanish
set @campo =
DateName(month,@dia)+replicate('0',2-len(ltrim(str(day(@dia)))))+ltrim(str(day(@dia)))
set language english
set @texto = 'alter table #asiste add '+@campo+' int default 0 not null'
exec (@texto)
declare mmitabla cursor for select hora from #asiste
open mmitabla
fetch next from mmitabla into @corre
while @@fetch_status = 0
begin
set @hishora = (select clientes from tabcliast where hora = @corre and
fecha = @dia)
print 'prueba'
print 'HIst: '+str(@hishora,11,2)
set @msuma = @msuma + round(@hishora,0)
print 'Suma: '+str(@msuma,11,2)
set @texto = 'update #asiste set '+@campo+'='+ltrim(str(@hishora))+'
where hora='+''''+@corre+''''
exec (@texto)
fetch next from mmitabla into @corre
end
deallocate mmitabla
set @dia = dateadd(day,1,@dia)
between @fini and @ffin group by fecha,hora
end
select * from #asiste
drop table #asiste
end
else
begin
select sum(clientes) as clientes from tabcliast where fecha between @fini
and @ffin
set @msuma = (select isnull(sum(clientes),0) as clientes from tabcliast
where fecha between @fini and @ffin)
end
print 'suma '+str(@msuma)
set @xtotal = round(@msuma,0)
print 'total' + str(@xtotal)
en el VFP9
cuanto lo llamo con @tipo =1 funciona correcto el valor @xtotal me retorna
lo que debe.
cuando lo llamo con @tipo=0 el valor @xtotal me sale .NULL.
en el sql me da los resultados coom debe de ser, pero en la aplicacion me
retorna null, ¿puede el sql retornar una consulta y un valor re retorno?
Luis
Leer las respuestas