资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.NET统计分析报表解决方案1-用户订购统计分析案例 前段时间接到很多报表的工作,现拿出一些小例子与大家分享。用户需求:运营商管理员:1. 以合作伙伴为维度对用户订购进行统计分析: a. 可对某一个合作伙伴进行分析,查看该合作伙伴下产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。 b. 可对所有合作伙伴进行分析,对比在某段时间内所有合作伙伴下产品的用户订购发展量,查看在某段时间内所有合作伙伴下产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。2. 以产品为维度对用户订购进行统计分析: a. 可对某一个产品进行分析,查看该产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。 b. 可对所有产品进行分析,对比在某段时间内所有产品的用户订购发展量,查看在某段时间内所有产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。合作伙伴管理员:1. 以产品为维度对用户订购进行统计分析: a. 可对本公司下某一个产品进行分析,查看该产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。 b. 可对本公司下所有产品进行分析,对比在某段时间内所有产品的用户订购发展量,查看在某段时间内所有产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。时间需支持按年、按月统计。根据用户需求,我们可以开始进行实现。实现步骤:这里是用一个例子实现用户需求,没有用到系统内的表,系统内的表有很多例子中不需要的字段,所以根据系统内表结构新建。1. 数据库数据表设计:合作伙伴表(CPInfo)产品信息表(ProductInfo):用户订购表(UserOrderInfo):因为是移动的系统,所以用户订购是通过手机。2. 统计分析表建立:由于现实系统数据量比较大,统计的数据也不是实时的,所以统计分析不直接在原始数据表上进行,这样我们就需要建立一个专门用来存放统计分析数据的表。用户订购统计分析表(UserOrderStat):a. StatType字段为报表类型,这里定义为:CP-按CP公司统计数据,Product-按产品统计数据b. TimeType字段为时间类型,这里定义为:Year-按年统计数据,Month-按月统计数据3. 统计分析存储过程建立:按年统计存储过程:IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.SP_UserOrderStatByYear) AND type in (NP, NPC)DROP PROCEDURE dbo.SP_UserOrderStatByYearGO-按年统计用户订购CREATE PROCEDURE SP_UserOrderStatByYearBeginYear INT, -开始年份EndYear INT -结束年份ASBEGIN DECLARE Temp_BeginYear INT DECLARE Temp_EndYear INT DECLARE BeginTime NVARCHAR(16) DECLARE EndTime NVARCHAR(16) SET Temp_BeginYear = BeginYear SET Temp_EndYear = EndYear + 1 -判断结束年份是否为当前时间年份或大于当前时间年份 IF EndYear = YEAR(GETDATE() SET Temp_EndYear = YEAR(GETDATE() SET BeginTime = CAST(Temp_BeginYear AS NVARCHAR(8) + -1-1 SET EndTime = CAST(Temp_EndYear AS NVARCHAR(8) + -1-1 -添加年统计数据 INSERT INTO UserOrderStat ( StatType, TimeType, Year, CPCode, CPChName, ProductCode, ProductName, OrderCount ) -按CP公司统计 SELECT CP, Year, YEAR(uoi.OrderTime), uoi.CPCode, MAX(c.CPChName), , , COUNT(0) FROM UserOrderInfo uoi JOIN CPInfo c ON uoi.CPCode = c.CPCode JOIN ProductInfo p ON uoi.ProductCode = p.ProductCode WHERE uoi.Status = 1 AND uoi.OrderTime BeginTime AND uoi.OrderTime BeginTime AND uoi.OrderTime YEAR(GETDATE() OR (EndYear = YEAR(GETDATE() AND EndMonth MONTH(GETDATE() BEGIN SET Temp_EndYear = YEAR(GETDATE() SET Temp_EndMonth = MONTH(GETDATE() END SET BeginTime = CAST(Temp_BeginYear AS NVARCHAR(8) + - + CAST(BeginMonth AS NVARCHAR(8) + -1 SET EndTime = CAST(Temp_EndYear AS NVARCHAR(8) + - + CAST(EndMonth AS NVARCHAR(8) + -1 -添加月统计数据 INSERT INTO UserOrderStat ( StatType, TimeType, Year, Month, CPCode, CPChName, ProductCode, ProductName, OrderCount ) -按CP公司统计 SELECT CP, Month, YEAR(uoi.OrderTime), MONTH(uoi.OrderTime), uoi.CPCode, MAX(c.CPChName), , , COUNT(0) FROM UserOrderInfo uoi JOIN CPInfo c ON uoi.CPCode = c.CPCode JOIN ProductInfo p ON uoi.ProductCode = p.ProductCode WHERE uoi.Status = 1 AND uoi.OrderTime BeginTime AND uoi.OrderTime EndTime AND NOT EXISTS (SELECT 0 FROM UserOrde
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号