SQL 会议消费记录统计
统计
/****** Object: Procedure [dbo].[JOB_UP_Summit_UserConfStat] Script Date: 2014-3-17 10:00:50 ******/
USE [ytSummitTeleConf_DB];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO /*============================================================= =============================================================*/
CREATE PROC [dbo].[JOB_UP_Summit_UserConfStat]
@BeginTime DATETIME = NULL,
@EndTime DATETIME = NULL
AS
SET NOCOUNT ON DECLARE
@RangeBeginTime DATETIME,
@RangeEndTime DATETIME IF(@BeginTime IS NOT NULL AND @EndTime IS NOT NULL)
BEGIN
SELECT
@RangeBeginTime = @BeginTime,
@RangeEndTime = @EndTime
END
ELSE IF(@BeginTime IS NULL AND @EndTime IS NULL)
BEGIN
SELECT
@RangeBeginTime = CONVERT(CHAR(10), DATEADD(DAY, -1, GETDATE()), 120),
@RangeEndTime = CONVERT(CHAR(10), GETDATE(), 120)
END
ELSE
BEGIN
RAISERROR('日期范围错误!', 1, 16)
RETURN
END --通话消费
INSERT INTO WTC_TB_USERCONF_DetailStat
(
CONFROOM,
SeqNo,
startTime,
CallerNum,
CalledNum,
HoldTime,
Banlnce,
CallFlag,
MebID,
CreateTime,
ConfGUID,
BalanceType,
Data
)
SELECT
B.ConfROOM,
C.SeqNO,
C.startTime,
C.CallerNum,
C.CalledNum,
C.HoldTime,
C.ConsumeAmount AS Banlnce,
C.SubSerFlag AS CallFlag,
C.BatchCode,
GETDATE() AS CreateTime,
NEWID() AS ConfGUID,
C.BalanceType,
B.Data
FROM dbo.WTC_TB_USERCONF A WITH(NOLOCK)
INNER JOIN dbo.WTC_TB_CONFMEMBERS B WITH(NOLOCK)
ON A.CONFROOM = B.CONFROOM
INNER JOIN IB_UserConsumeList C WITH(NOLOCK)
ON A.SeqNo = C.SeqNo
--AND B.BatchID = C.BatchID
AND CAST(B.MebID AS VARCHAR(36)) = C.BatchCode
AND C.Serflag = 4
WHERE A.Flag = 1 --召开成功的会议
AND A.CONFTIME >= @RangeBeginTime
AND A.CONFTIME < @RangeEndTime --短信消费
INSERT INTO dbo.WTC_TB_USERSMS_DetailStat
(
CONFROOM,
SeqNo,
MsgID,
Mobile,
SendTime,
[State],
SmsID,
MessageContent,
SmsType,
Amount
)
SELECT
A.CONFROOM,
A.SeqNo,
B.MsgID,
C.Mobile,
B.SendTime,
B.[State],
C.SmsID,
MessageContent = [Message],
B.SmsType,
B.Amount
FROM dbo.WTC_TB_USERCONF A WITH(NOLOCK)
INNER JOIN dbo.IB_Sms_Send_Bill B WITH(NOLOCK)
ON A.CONFROOM = B.CONFROOM
INNER JOIN dbo.IB_Sms_Send_Detail_Bill C WITH(NOLOCK)
ON B.MsgID = C.MsgID
WHERE A.CONFTIME >= @RangeBeginTime --所有的会议都有可能收取短信费用
AND A.CONFTIME < @RangeEndTime --会议统计
INSERT INTO dbo.WTC_TB_USERCONF_Stat
(
CONFROOM,
SeqNo,
CONFTITLE,
CONFTIME,
confHoldTimeSum,
confBancleSum,
confBancleSumMoth,
CreateTime,
BillCallNum,
ConfCallNum,
SmsBancleSum
)
SELECT
A.CONFROOM,
A.SeqNo,
A.CONFTITLE,
A.CONFTIME,
ConfHoldTimeSum = ISNULL(B.ConfHoldTimeSum, 0),
ConfBancleSum = ISNULL(B.ConfBancleSum, 0),
ConfBancleSumMoth = ISNULL(B.ConfBancleSumMoth, 0),
GETDATE(),
BillCallNum = ISNULL(B.BillCallNum, 0), --计费通话数
ConfCallNum = ISNULL(C.ConfCallNum, 0), --会议通话数
SmsBancleSum = ISNULL(D.SmsBancleSum, 0)
FROM dbo.WTC_TB_USERCONF A WITH(NOLOCK)
OUTER APPLY
(
SELECT
ConfHoldTimeSum = SUM(CASE HoldTime%60 WHEN 0 THEN HoldTime ELSE (HoldTime/60+1)*60 END),
ConfBancleSum = SUM(Banlnce),
ConfBancleSumMoth = SUM(CASE WHEN BalanceType <> 3 THEN Banlnce END),
BillCallNum = COUNT(1)
FROM dbo.WTC_TB_USERCONF_DetailStat M WITH(NOLOCK)
WHERE M.CONFROOM = A.CONFROOM
) B
OUTER APPLY
(
SELECT ConfCallNum = COUNT(1)
FROM dbo.WTC_TB_CONFMEMBERS M WITH(NOLOCK)
WHERE M.CONFROOM = A.CONFROOM
) C
OUTER APPLY
(
SELECT SmsBancleSum = SUM(Amount)
FROM dbo.WTC_TB_USERSMS_DetailStat M WITH(NOLOCK)
WHERE M.CONFROOM = A.CONFROOM
) D
WHERE A.CONFTIME >= @RangeBeginTime
AND A.CONFTIME < @RangeEndTime GO
SQL 会议消费记录统计的更多相关文章
- SQL语句调优 - 统计信息的含义与作用及维护计算
统计信息的含义与作用 ...
- SQL Server里等待统计(Wait Statistics)介绍
在今天的文章里我想详细谈下SQL Server里的统计等待(Wait Statistics),还有她们如何帮助你立即为什么你的SQL Server当前很慢.一提到性能调优,对我来说统计等待是SQL S ...
- SQL Server-深入剖析统计信息
转自: http://www.cnblogs.com/zhijianliutang/p/4190669.html 概念理解 关于SQL Server中的统计信息,在联机丛书中是这样解释的 查询优化 ...
- 最新电Call记录统计-full hash join用法
declare @time datetime set @time='2016-07-01' --最新的电Call记录统计查询--SELECT t.zuoxi1,t.PhoneCount,t.Phone ...
- SQL大数据操作统计
SQL大数据操作统计 1:select count(*) from table的区别SELECT object_name(id) as TableName,indid,rows,rowcnt FROM ...
- C# Linq to sql 实现 group by 统计多字段 返回多字段
Linq to sql 使用group by 统计多个字段,然后返回多个字段的值,话不多说,直接上例子: where u.fy_no == fy_no orderby u.we_no group u ...
- Oracle SQL调优记录
目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太 ...
- oracle 、mysql、 sql server使用记录
oracle .mysql. sql server使用记录 mysql常用命令: mysqld --启动mysql数据库 show databases; -- 查看数据库 use database; ...
- 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...
随机推荐
- js中的break ,continue, return (转)
面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...
- google.GIS小例子
var map; var array = [[41.774166667, 85.943055556], [43.864052, 87.560499]];//经纬度 var array1 = [&quo ...
- Ext.Window 的常见属性
Ext.Window 的常见属性: plain:true,(默认不是) resizable:false,(是否可以改变大小,默认可以) maximizable:true,(是否增加最 ...
- centos x86_64环境下 下载chrome
由于Cent OS内核版本过低,无法安装Chrome浏览器2.替代方案:可以使用Chromium浏览器 1.切换到root: su - 或者 sudo -i 2.下载新的软件源定义: cd /etc/ ...
- Java JDK配置环境变量
JDK的配置环境变量. 1.下载JDK,然后安装(点下一步). 2.右键单击 "计算机" ,选择 "属性". 3.单击 "高级系统设置&quo ...
- (转)AppiumLibrary基本操作
*** Settings *** Library AppiumLibrary Library Collections Library String Library Dialogs *** Test C ...
- 微信网页授权snsapi_base、snsapi_userinfo的问题
微信网页授权SCOPE分为snsapi_base.snsapi_userinfo,前者是用户无感知的静默授权只能拿到openid:而后者需要用户确认,能拿到更多的用户信息. 我有一个系统需要进行网页授 ...
- build配置
buildTypes { debug { // 显示Log buildConfigField "boolean", ...
- mvc模型验证
自定义的ValidationAttribute类, Compare [Compare("MyOtherProperty")] 两个属性必须相同值,比如我们要求用户重复输入两次邮 ...
- oracle备份工具exp-imp
rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpmrpm -ivh http: ...