统计

/****** 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
分类:
存储过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理