DECLARE @UserID INT; --推广员帐号
DECLARE @ProxyID INT; --代理帐号
DECLARE @Score INT=1000; --分数
SELECT
@UserID = [SpreaderID]
FROM
[QPAccountsDB].[dbo].[AccountsInfo]
WHERE
UserID = 5055;
SELECT --查出推广员的代理帐号
@ProxyID = ProxyID
FROM
[QPAccountsDB].[dbo].[AccountsInfo]
LEFT JOIN
[QPProxyDB].[dbo].[BS_ProxyInfo]
ON BS_ProxyInfo.account = AccountsInfo.Accounts
WHERE
UserID = @UserID;
PRINT @ProxyID;
CREATE TABLE #ProxyInfo
(
belongsAgent INT,
assignProportion TINYINT
);
WITH cte
AS ( 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 cursor01
INTO
@belongsAgent,
@assignProportion; --into的变量数量必须与游标查询结果集的列数相同
WHILE @@fetch_status = 0 --提取成功,进行下一条数据的提取操作
BEGIN SET @AllTax=@assignProportion*@AllTax/100
UPDATE [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;

游标和递归sql 的一些代码的更多相关文章

  1. java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误

    后台报出如下错误: Caused by: java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-00 ...

  2. 使用BAT批处理执行sql语句的代码

    使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...

  3. PHP之SQL防注入代码集合(建站常用)

    SQL防注入代码一 <?php if (!function_exists (quote)) { function quote($var) { if (strlen($var)) { $var=! ...

  4. 使用游标循环进行SQL更新插入的SQL语句

    使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作.下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助. --开始事务 BEGIN TRA ...

  5. php防sql注入过滤代码

    防止sql注入的函数,过滤掉那些非法的字符,提高sql安全性,同时也可以过滤XSS的攻击. function filter($str) { if (empty($str)) return false; ...

  6. SQL备份数据库代码

    SQL备份数据库代码 #region 服务每天备份一次数据库 /// <summary> /// 服务每天备份一次数据库 /// </summary> public void ...

  7. 修改Oracle游标数及排查游标问题相关SQL

    查看当前游标数show parameter open_cursors; 修改游标最大数 ; commit; 查看游标消费情况 select o.sid, osuser, machine, count( ...

  8. 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞

    Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二 ...

  9. 特殊字符的过滤方法,防sql防注入代码的过滤方法

    特殊字符的过滤方法 function strFilter($str){ //特殊字符的过滤方法 $str = str_replace('`', '', $str); $str = str_replac ...

随机推荐

  1. [视频]K8飞刀 HackerIE自动检测网站注入教程

    [视频]K8飞刀 HackerIE自动检测网站注入教程 https://pan.baidu.com/s/1c08rihi

  2. 急速JavaScript全栈教程

    3 天前  ·  3k 次阅读 急速JavaScript全栈教程 javascript node.js  mongodb 140 自从一年前发布了Vuejs小书的电子书,也有些日子没有碰过它们了,现在 ...

  3. Hibernate框架 主配置文件(Hibernate.cfg.xml)基本

    数据库连接参数配置: <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type ...

  4. kafka集群partition分布原理分析

    1. Kafka集群partition replication默认自动分配分析 下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication ...

  5. Modifying namespace in XML document programmatically

    Modifying namespace in XML document programmatically static XElement stripNS(XElement root) { return ...

  6. vue router history模式开发ngnix配置

    一.前沿 现在很多用vue-router开发页面的时候,都习惯使用hash路由莫模式,如:https://xxxx/#/index/share?code=dsfsd.这种模式在做pc端开发时候挺好用的 ...

  7. shiro教程1(HelloWorld)

    shiro简介 官网 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动 ...

  8. cJSON填坑记

    1. 艰辛的过程 最近做了一个嵌入式的项目,需要与服务器进行连接.为了方便服务器处理数据,经商定后统一采用JSON形式进行数据的传输. 以前没有用过JSON格式进行数据处理,所以上网搜索了一下,很多人 ...

  9. 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...

  10. .net 服务端 访问共享文件夹

    共享文件夹所在电脑为A服务器,网站部署在B服务器 A,B服务器上拥有同名账户,且密码也要相同.如账户名share,密码123. A服务器上,共享文件夹设置share账户有读写权限 B服务器上,IIS中 ...