Hello Friends, I'm trying to generate several tables in Sql, which will come from a base table.
Example: I have a BONUS table that can contain more or less than 4 million records; and I have a CONTEO_CUENTA table, where are the amounts of records by accounts (field auxc_count of tbl BONUS); and what I try to do is to separate into tables (WITH THE NAME OF THE ACCOUNT OR ITEM) the BONUS information depending on the number of records in AUXC_CUENTA.
Declare @suma int ,@conteo1 int, @item1 int, @item2 int, @nombretbl varchar(100)
Set @conteo1=600000
Set @suma=(SELECT SUM(conteo) from CONTEO_CUENTA where conteo<@conteo1)
set @item1=1
IF @suma<4000000
BEGIN
SELECT BONUS.* INTO CUENTA_0 FROM BONUS WHERE AUXC_CUENTA IN(SELECT AUXC_CUENTA FROM CONTEO_CUENTA WHERE CONTEO<@conteo1)
set @item2=(select top 1 dbo.CONTEO_CUENTA.ITEM from CONTEO_CUENTA where CONTEO<@conteo1 order by ITEM asc)
While (@item1<=@item2)
Begin
Set @nombretbl = 'CUENTA_'+'['+CAST(@ITEM1 AS VARCHAR(30))+']' --(select auxc_cuenta from CONTEO_CUENTA where ITEM = @item1)
SELECT BONUS.* INTO @nombretbl FROM dbo.BONUS WHERE AUXC_CUENTA=(select dbo.CONTEO_CUENTA.AUXC_CUENTA FROM CONTEO_CUENTA WHERE ITEM=@item1)
END
set @item1 = @item1 + 1
End
Else
Begin
set @conteo1=500000
SELECT BONUS.* INTO CUENTA_0 FROM BONUS WHERE AUXC_CUENTA IN(SELECT AUXC_CUENTA FROM CONTEO_CUENTA WHERE CONTEO<@conteo1)
set @item2=(select top 1 dbo.CONTEO_CUENTA.ITEM from CONTEO_CUENTA where CONTEO<@conteo1 order by item asc)
While (@item1<=@item2)
Begin
Set @nombretbl= (select auxc_cuenta from CONTEO_CUENTA where ITEM = @item1)
SELECT BONUS.* INTO @nombretbl FROM BONUS WHERE AUXC_CUENTA=(select dbo.CONTEO_CUENTA.AUXC_CUENTA FROM CONTEO_CUENTA WHERE ITEM=@item1)
set @item1 = @item1 + 1
End
End
select count(*) from CUENTA_0
But there is a problem with the variable @nombretbl
, I get it:
INCORRECT SYNTAX NEAR '@nombretbl'