@@FETCH_STATUS
返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
返回值
描述
0
FETCH 语句成功。
-1
FETCH 语句失败或此行不在结果集中。
-2
被提取的行不存在。
---------------------------------------------------------------- -- 设计系统中取数的程序如下: ---------------------------------------------------------------- ----通过WHILE 语句遍历 Declare @sDate char(10) Declare @sSQL varchar(8000) select @sDate= Convert(Varchar(10),getdate(),120) --set @sDate='2010-11-01' begin set @ssql = 'DELETE FROM XJY_JXC_SUP_DETAIL WHERE (RUN_DATE='''+@sDate+''') AND md_x<>0 AND x<>0' Exec(@sSQl) end DECLARE tnames_cursor CURSOR FOR SELECT 'ShopProdSale'+ShopCode FROM ShopItem where shoptype='01' OPEN tnames_cursor DECLARE @tablename sysname --SET @tablename = 'authors' FETCH NEXT FROM tnames_cursor INTO @tablename WHILE (@@FETCH_STATUS <> -1) BEGIN IF (@@FETCH_STATUS <> -2) BEGIN SELECT @tablename = RTRIM(@tablename) set @sSQL=' insert into XJY_JXC_SUP_DETAIL (run_date,suppl_No,x,x_qty,md_x,md_x_qty,XJY_SUP_DEMO) SELECT t1.wdate, t2.supcode, sum(SaleAmt) as x, sum(CountN) as x_qty, sum(SaleAmt) as md_x, sum(CountN) as md_x_qty, '+''''+SubString(@tablename,13,3)+'号店销售'+''''+' from '+@tablename+' t1, product1 t2 where t1.prodcode = t2.prodcode and (WDate='''+@sDate+''') group by t1.wdate, t2.supcode' Exec(@sSQl) --print(@ssql) END FETCH NEXT FROM tnames_cursor INTO @tablename END CLOSE tnames_cursor DEALLOCATE tnames_cursor
说明:
门店零售
所有的表是动态表 每个语句应该 遍历所有的门店 插入
1、删除当天XJY_JXC_SUP_DETAIL表的门店销售
2、遍历当天门店(直营店)
3、遍历插入当天门店的销售数据
--注释
这个程序有用的地方是在取多个表的一系列数据汇总时用的,涉及到循环利用表