create PROCEDURE total_mySaleDuty
as
BEGIN
DECLARE @a int,@error int
DECLARE @b int,@errorb int
DECLARE @c_dutyId int;
DECLARE @c_dutyName VARCHAR(100);
DECLARE @c_proxyCount int;
DECLARE @c_saleCount int;
DECLARE @c_buyCount int;
DECLARE @c_count int;
DECLARE @c_userId int; set @b=1;
set @errorb=0;
set @a=1;
set @error=0; DECLARE findManager_cur CURSOR for
SELECT userId FROM QPNewLobbyDB.dbo.qzmajiang_duty WHERE dutyLevel = 1 OPEN findManager_cur FETCH next from findManager_cur into @c_userId;
while @@FETCH_STATUS = 0
begin
DECLARE findSaleDuty_cur CURSOR for
SELECT
d.dutyId,
MAX (d.dutyName) AS dutyName,
COUNT (DISTINCT u.userId) AS proxyCount,
SUM (CASE WHEN l.typeId = 1 THEN l.roomCardCount ELSE 0 END) saleCount,
SUM (CASE WHEN l.typeId = 2 THEN c.currentPrice ELSE 0 END) buyCount
FROM QPNewLobbyDB.dbo.qzmajiang_duty d
LEFT JOIN QPNewLobbyDB.dbo.qzmajiang_proxy_user u ON d.dutyId = u.dutyId
LEFT JOIN QPNewLobbyDB.dbo.qzmajiang_proxy_log l ON u.userId = l.fromUserId
AND DATEDIFF(MONTH,l.createTime,GETDATE()) = 0
LEFT JOIN QPNewLobbyDB.dbo.qzmajiang_roomcard_config c ON l.configId = c.configId
WHERE parentDutyId = (SELECT dutyId FROM QPNewLobbyDB.dbo.qzmajiang_duty WHERE userId =@c_userId AND dutyLevel = 1)
GROUP BY d.dutyId OPEN findSaleDuty_cur FETCH next from findSaleDuty_cur into @c_dutyId,@c_dutyName,@c_proxyCount,@c_saleCount,@c_buyCount;
while @@FETCH_STATUS = 0
begin select @c_count = count(1) from QPNewLobbyDB.dbo.qzmajiang_history_total where dutyId = @c_dutyId and DATEDIFF(MONTH, createTime, GETDATE())= 0 ; if(@c_count=0)
begin
insert into QPNewLobbyDB.dbo.qzmajiang_history_total values(@c_dutyId,@c_dutyName,@c_proxyCount,@c_saleCount,@c_buyCount,GETDATE())
end
else
begin
update QPNewLobbyDB.dbo.qzmajiang_history_total set proxyCount=@c_proxyCount,saleCount=@c_saleCount,buyCount=@c_buyCount,createTime=GETDATE()
where dutyId=@c_dutyId and DATEDIFF(MONTH, createTime, GETDATE())= 0
end set @a=@a+1
set @error= @error + @@ERROR
fetch next from findSaleDuty_cur into @c_dutyId,@c_dutyName,@c_proxyCount,@c_saleCount,@c_buyCount end
close findSaleDuty_cur
deallocate findSaleDuty_cur set @b=@b+1
set @errorb= @errorb + @@ERROR
fetch next from findManager_cur into @c_userId
end
close findManager_cur
deallocate findManager_cur
END

Sql Server 游标例子笔记的更多相关文章

  1. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  2. SQL Server 2012 数据库笔记

    慕课网 首页 实战 路径 猿问 手记     Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...

  3. 《Troubleshooting SQL Server》读书笔记-CPU使用率过高(下)

    <Troubleshooting SQL Server>读书笔记-CPU使用率过高(下) 第三章 High CPU Utilization. CPU使用率过高的常见原因 查询优化器会尽量从 ...

  4. SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总

    SQL Server游标   转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...

  5. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  6. SQL Server 游标运用:鼠标轨迹字符串分割

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...

  7. sql server 游标的简单用法

    sql server游标: --定义游标 declare cursor1 cursor for select ID,Name from A --打开游标 open cursor1 declare @i ...

  8. SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)

    原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...

  9. SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)

    原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...

随机推荐

  1. 洛谷3707 [SDOI2017] 相关分析 【线段树】

    分析: 化简一下就行了,注意一下平方和公式的运用以及精度的误差. 代码: #include<bits/stdc++.h> using namespace std; ; int n,m; i ...

  2. Django+Xadmin打造在线教育系统(八)

    首页和全局404,500配置 轮播图 公开课 授课机构 新建view ## 首页view class IndexView(View): def get(self,request): # 取出轮播图 a ...

  3. Selecting Courses POJ - 2239(我是沙雕吧 按时间点建边 || 匹配水题)

    呃呃呃呃呃 把每个课给了INF个容量....我是沙雕把....emm....这题就是做着玩...呃呃呃别当真.... #include <iostream> #include <cs ...

  4. 【XSY2741】网格 分治 LCT 并查集

    题目描述 有一个\(n\times m\)的网格,线框的交点可以扭动,边不可伸缩.网格中有一些格子里面放了'x'形的支架,这些格子不会变形,但可以整体转动.如果所有格子都不能变形,那么称这个网格稳固. ...

  5. 【BZOJ1015】【JSOI2008】星球大战 并查集

    题目大意 给你一张\(n\)个点\(m\)条边的无向图,有\(q\)次操作,每次删掉一个点以及和这个点相邻的边,求最开始和每次删完点后的连通块个数. \(q\leq n\leq 400000,m\le ...

  6. django 配置邮件发送 send_email

    导入 send_email 所用方法导入 from django.core.mail import send_mail 因为使用的需要指明 发送人 所以要把 setting.py 中的 EMAIL_F ...

  7. LOJ #2048. 「HNOI2016」最小公倍数

    题意 有 \(n\) 个点,\(m\) 条边,每条边连接 \(u \Leftrightarrow v\) 且权值为 \((a, b)\) . 共有 \(q\) 次询问,每次询问给出 \(u, v, q ...

  8. Hdoj 2188.悼念512汶川大地震遇难同胞——选拔志愿者 题解

    Problem Description 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理 ...

  9. 「POJ3696」The Luckiest number【数论,欧拉函数】

    # 题解 一道数论欧拉函数和欧拉定理的入门好题. 虽然我提交的时候POJ炸掉了,但是在hdu里面A掉了,应该是一样的吧. 首先我们需要求的这个数一定可以表示成\(\frac{(10^x-1)}{9}\ ...

  10. 使用matplotlib.pylab绘制分段函数

    1.安装matplotlib pip3 install matplotlib sudo apt install python3-tk 2.分段函数 from pylab import * x = li ...