Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/03/2009, 10:02
TERE_20_20
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Concatenar nombre de tabla

lter PROCEDURE [dbo].[SpFechasD09](@tabla AS VARCHAR(15),@cp AS varchar(15),@fecini AS VARCHAR(30),@fecfin AS VARCHAR(30))
AS
DECLARE @sql VARCHAR(1000),@botip INT,@bofecd VARCHAR(30),@ingresos INT,@pt INT,@botib1 INT,@fecha AS VARCHAR(30)
DECLARE @Taquilla INT, @Abordo INT,@pastra INT,@Total INT,@TPT INT
DECLARE @VAR1 int,@VAR2 int, @VAR3 int, @VAR4 int,@CentroPago int ,@Marca Varchar(30)
declare @fecha1 smalldatetime,@anio varchar(30),@an nvarchar(10)
declare @tablename sysname
DECLARE @cadena VARCHAR(1000)
select @fecha1=GETDATE()
select @anio=year(@fecha1)
select @an=substring(cast(@anio as varchar(10)),3,2)
SELECT @tablename='tblFechasD'+@an
SELECT @sql='DECLARE cursorsito CURSOR FOR SELECT BOTIPB, BOFECD, SUM(BOIMPB) AS INGRESOS, Count(*) as PT, BOTIPB FROM ' + @tabla + ' WHERE ID_CENTRO_PAGO = '+ @cp +' and BOFECD >= '''+ @fecini + ''' and BOFECD <= ''' + @fecfin + ''' GROUP by BOFECD, BOTIPB order by BOFECD'
exec(@sql)
open cursorsito
FETCH NEXT FROM cursorsito INTO @botip,@bofecd,@ingresos,@pt,@botib1
if @@FETCH_STATUS=0
BEGIN
SELECT @fecha=@bofecd
SELECT @cp
Select Marca='Null'
select @Taquilla=0
Select @Abordo=0
Select @pastra=0
WHILE @@FETCH_STATUS=0
BEGIN
IF @fecha=@bofecd

BEGIN
IF @botip=01 or @botip=11 or @botip=21 or @botip=31 or @botip=41 or @botip=61
BEGIN
SELECT @Taquilla=@Taquilla + @ingresos
END
ELSE
BEGIN
SELECT @Abordo=@Abordo + @ingresos
END
SELECT @Total = @Taquilla + @Abordo
SELECT @pastra=@pastra + @pt
FETCH NEXT FROM cursorsito INTO @botip,@bofecd,@ingresos,@pt,@botib1
END
ELSE
BEGIN
Select @TPT = @pastra
SELECT @CentroPago=cast(@cp as int), @VAR1=@TPT,@VAR2=@Taquilla,@VAR3=@Abordo,@VAR4=@To tal
SELECT @cadena = 'INSERT INTO '+ rtrim(ltrim(@tablename)) +' values ('+ rtrim(ltrim(@centroPago))+ ',' + rtrim(ltrim(@Marca)) + ',''' +rtrim(ltrim(@fecha)) + ''',' + rtrim(ltrim(@VAR1)) + ',' + rtrim(ltrim(@VAR2)) + ','+ rtrim(ltrim(@VAR3)) + ',' + rtrim(ltrim(@VAR4)) + ')'
EXECUTE (@cadena)
SELECT @Taquilla=0
SELECT @Abordo=0
SELECT @pastra=0
SELECT @fecha=@bofecd
SELECT @cp
Select Marca='Null'
END
END
Select @TPT = @pastra
SELECT @CentroPago=cast(@cp as int), @VAR1=@TPT,@VAR2=@Taquilla,@VAR3=@Abordo,@VAR4=@To tal
SELECT @cadena = 'INSERT INTO '+ rtrim(ltrim(@tablename)) +' values ('+ rtrim(ltrim(@CentroPago))+ ',' + rtrim(ltrim(@Marca)) + ',''' +rtrim(ltrim(@fecha)) + ''',' + rtrim(ltrim(@VAR1)) + ',' + rtrim(ltrim(@VAR2)) + ','+ rtrim(ltrim(@VAR3)) + ',' + rtrim(ltrim(@VAR4)) + ')'
EXECUTE (@cadena)
END
CLOSE cursorsito
deallocate cursorsito