博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游标和递归sql 的一些代码
阅读量:6496 次
发布时间:2019-06-24

本文共 2109 字,大约阅读时间需要 7 分钟。

DECLARE @UserID INT; --推广员帐号DECLARE @ProxyID INT; --代理帐号DECLARE @Score INT=1000; --分数SELECT    @UserID = [SpreaderID]FROM    [QPAccountsDB].[dbo].[AccountsInfo]WHERE    UserID = 5055;SELECT --查出推广员的代理帐号        @ProxyID = ProxyIDFROM        [QPAccountsDB].[dbo].[AccountsInfo]    LEFT JOIN        [QPProxyDB].[dbo].[BS_ProxyInfo]            ON BS_ProxyInfo.account = AccountsInfo.AccountsWHERE        UserID = @UserID;PRINT @ProxyID;CREATE TABLE #ProxyInfo    (        belongsAgent     INT,        assignProportion TINYINT    );WITH cteAS (   SELECT           belongsAgent       FROM           [QPProxyDB].[dbo].[BS_ProxyInfo]       WHERE           ProxyID = @ProxyID           AND belongsAgent <> -1       UNION ALL       SELECT               a.belongsAgent       FROM               [QPProxyDB].[dbo].[BS_ProxyInfo] a           JOIN               cte                              b                   ON a.ProxyID = b.belongsAgent       WHERE               a.belongsAgent <> -1)INSERT #ProxyInfo    (        belongsAgent,        assignProportion    )       SELECT           BS_ProxyInfo.ProxyID,           assignProportion       FROM           cte LEFT JOIN [QPProxyDB].[dbo].[BS_ProxyInfo] ON BS_ProxyInfo.ProxyID = cte.belongsAgent       ORDER BY           BS_ProxyInfo.belongsAgent ASC;---游标更新删除当前数据---1.声明游标DECLARE cursor01 CURSOR SCROLL FOR    SELECT        *    FROM        #ProxyInfo    ORDER BY        belongsAgent ASC;        DECLARE @AllTax INT         SET @AllTax =@Score--2.打开游标OPEN cursor01;--3.声明游标提取数据所要存放的变量DECLARE    @belongsAgent     INT,    @assignProportion TINYINT;--4.定位游标到哪一行FETCH FIRST FROM cursor01INTO    @belongsAgent,    @assignProportion; --into的变量数量必须与游标查询结果集的列数相同WHILE @@fetch_status = 0 --提取成功,进行下一条数据的提取操作     BEGIN      SET   @AllTax=@assignProportion*@AllTax/100UPDATE [QPProxyDB].[dbo].[BS_ProxyInfo] SET allTax+=@AllTax WHERE ProxyID=@belongsAgent        FETCH NEXT FROM cursor01        INTO            @belongsAgent,            @assignProportion; --移动游标    END;CLOSE cursor01;DEALLOCATE cursor01;DROP TABLE #ProxyInfo;

 

转载于:https://www.cnblogs.com/RambleLife/p/9507708.html

你可能感兴趣的文章
CentOS5.6下安装Oracle10G软件 【保留报错经验】
查看>>
输出程序运行的时间(精确到微秒)
查看>>
递归和迭代之间的差
查看>>
添加Net4CollectionTypeFactory的原因
查看>>
VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法
查看>>
如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
查看>>
HDU 4869 Turn the pokers(思维+组合公式+高速幂)
查看>>
BZOJ1315 : Ural1557Network Attack
查看>>
JAVA - HashMap和HashTable
查看>>
Apache漏洞修复
查看>>
iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点
查看>>
[Angular 2] implements OnInit, OnDestory for fetching data from server
查看>>
Linux下Postfix的配置和使用
查看>>
[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
查看>>
MySql 查询表字段数
查看>>
C语言编写的PHP框架--yaf入门编程
查看>>
Building test programs
查看>>
如何删除mac通用二进制文件
查看>>
小酌重构系列[8]——提取接口
查看>>
Dependency Walker使用说明
查看>>