前几天客户要下一个报表.数据大概是2000条,报表结果是要进行多次统计的.如把统计逻辑放到程序中是不可选的.我试了下.下个报表要2分钟.我试了下视图只用了1秒不到.(视图当然会比应用程序快这是一定的.关键是怎样做到统计逻辑在视图中实现)下面介绍下:
逻辑是这样的:
A表是用户信息表.B表是用户积分情况表,C表是用户积分使用情况表,B表有两种状态.1-用户可使用的积分,2-用户还不能使用的积分,C表有2种状态.1-已使用了的积分数据,2-已冻结的积分数据,现在要求用户的总积分数,已使用积分数,冻结的积分数,还可使用积分数.
我是这样做的:
sql 代码
- create or replace view integral_sum_view as
- select "YGJL_PERSONNEL_ID","P_MOBILE","SUMNUMBER","SUMNUMBERAFFIRM","SUMNUMBERPUT","INTEGRAL" from (
- select a.YGJL_PERSONNEL_ID as YGJL_PERSONNEL_ID
- decode(b.sumNumber,null,0,b.sumNumber) as sumNumber,
- decode(c.sumNumberAffirm,null,0,c.sumNumberAffirm) as sumNumberAffirm,
- decode(d.sumNumberPut,null,0,d.sumNumberPut) as sumNumberPut,
- ( (to_number(decode(b.sumNumber,null,0,b.sumNumber))-
- to_number(decode(c.sumNumberAffirm,null,0,c.sumNumberAffirm)))-
- to_number(decode(d.sumNumberPut,null,0,d.sumNumberPut))) as INTEGRAL
- from A a left join(
-
-
- select this_.YGJL_PERSONNEL_ID, sum( decode(this_.ITEM_INTEGRAL,null,0,this_.item_integral) ) as sumNumber from
- B this_ where this_.STATE='3' group by (this_.YGJL_PERSONNEL_ID)
- ) b on a.ygjl_personnel_id = b.ygjl_personnel_id left join(
-
- select this_.YGJL_PERSONNEL_ID, sum( decode(this_.TRADE_INTEGRAL,null,0,this_.TRADE_INTEGRAL) ) as sumNumberAffirm from
- C this_, tygjldept5_ where this_.STATE='1'
- group by (this_.YGJL_PERSONNEL_ID)) c on a.ygjl_personnel_id = c.ygjl_personnel_id left join(
-
- select this_.YGJL_PERSONNEL_ID, sum( decode(this_.TRADE_INTEGRAL,null,0,this_.TRADE_INTEGRAL) ) as sumNumberPut from
- T_INTEGRAL_TRADE this_,
- and not this_.STATE='2' group by (this_.YGJL_PERSONNEL_ID)) d on a.ygjl_personnel_id = d.ygjl_personnel_id
-
- )
仅供学习...........................................
分享到:
相关推荐
使用存储过程的好处包括提升程序的可移植性、加快执行速度、降低网络负载以及增强数据库的安全性。 2. 视图和存储过程在.NET开发环境中的应用 在开发.NET环境下的进销存系统时,尤其是在业绩提成统计模块的开发中...
5. **INDEX=**: 为数据集创建索引,加快对特定变量的访问速度。 **特殊数据集名** - **_data_**: 当省略数据集名称时,SAS会自动使用_data_作为当前数据集的名称。例如,`data _data_;`与`data;`效果相同,表示使用...
这种设计旨在解决企业在数据统计、呈现、维护以及跨国数据同步方面遇到的问题,提高系统的灵活性、效率和可靠性。 首先,MVC架构是一种广泛应用于Web应用开发的设计模式,它将应用程序分为三个核心部分:模型...
在这个项目中,我们讨论的是一个使用C#编程语言实现的多线程`ping`程序,它可以同时对多个目标进行探测,并且能够统计和展示结果。下面我们将深入探讨这个程序涉及的技术点。 首先,我们要了解C#中的多线程。在C#中...
### 基于微信小程序的Flask订餐系统的设计与实现 #### 摘要与研究背景 在当今数字化时代,随着人们生活节奏的加快,越来越多的人选择通过线上平台进行订餐服务。与此同时,餐饮商家也需要一个高效便捷的管理工具来...
WeiPhp框架内建了多种API接口,这些接口能够很好地对接微信小程序的各项功能,例如消息推送、用户管理、数据统计等。开发者只需要按照WeiPhp框架的规范进行编码,就可以实现与微信小程序前端的无缝对接。这样,不仅...
通过合理配置SGA(系统全局区域)和PGA(程序全局区域)的大小,可以提高内存的使用效率,减少磁盘I/O操作,从而加快数据库响应速度。 4. SQL优化:SQL语句的编写对数据库性能有着直接影响。DBA需要掌握SQL调优技术...
合理设计和使用索引能够显著加快数据检索速度,但需要注意过度索引可能带来的维护和存储开销。 最后,SQL的事务处理(Transaction)确保了数据操作的一致性和可靠性。在VFP中,可以使用BEGIN TRANSACTION、COMMIT和...
有几个DMV提供有关查询统计信息,执行计划,最近查询等的数据。这些可以一起使用,以提供一些惊人的见解。例如,下面的查询可用于查找使用最多读取,写入,工作时间(CPU)等的查询。查询结果如下所示。下面的图片...
开发者可以使用WXML来创建视图元素,如文字、图片、按钮等,并通过数据绑定与JavaScript进行交互,实现动态内容的更新。 2. WXSS (WeiXin Style Sheet): 类似于CSS,WXSS用于控制微信小程序中WXML元素的样式。它...
- 使用缓存机制来加快加载速度 #### 52. 如何在FORM中同时加入水平与垂直滚动条? 可以使用 `SCROLLBAR-DEFINE` 函数定义两个滚动条,并分别与水平和垂直方向关联。此外,需要设置滚动条的范围和步长。 #### 53. ...
3. 数据库索引优化:合理创建数据库索引,加快查询速度。 4. 页面压缩与合并:减少HTTP请求,提高页面加载速度。 五、系统部署与维护 1. 使用IIS作为Web服务器,确保系统的稳定运行。 2. 定期备份数据库,防止...
索引是一种加快数据检索速度的数据结构,它通过特定的数据组织方式来快速定位数据记录的位置,大大减少了数据库在执行查询操作时的数据检索范围。索引的建立需要对数据进行排序,并在创建索引时考虑字段的使用频率和...
它基于JavaScript,结合WXML(WeiXin Markup Language)和WXSS(WeiXin Style Sheets)进行界面布局和样式定义,实现数据与视图的双向绑定。 2. 微信小程序的开发流程包括注册、开发、调试、发布等步骤,其中开发...
0865 提高SQL性能加快执行速度 513 0866 控制批处理内语句的执行 513 0867 执行查询但是显示列信息 514 0868 获取连接或试图连接的次数 514 0869 获取当前数据库的语言名 514 19.5 时间与谓词 514 0870...
7. **StdAfx.cpp**:预编译头文件,用于包含标准库和项目特定的预编译头文件,以加快编译速度。通常包含`#include "stdafx.h"`,该头文件包含经常使用的库和宏定义。 8. **OpenMRUDoc.dsp**:这是早期版本的Visual ...
然而,过多使用视图可能会影响查询性能,特别是当视图数据是频繁变动的,这就需要在视图的使用与数据库性能之间找到一个平衡点。 最后,SQL语句优化理论是指导我们如何编写高效SQL语句的理论基础。它包括理解数据库...
5. 移动审批:通过微信小程序实现财务审批流程,加快业务处理速度。 6. 数据统计与分析:提供图形化的数据分析工具,帮助管理层快速理解财务状况,做出决策。 综上所述,基于SSM+Vue的电脑公司财务管理系统结合了...
2. 快速开发:ThinkPHP的命令行工具可以自动生成模型、控制器和视图文件,大大加快了开发速度。 3. 配置管理:通过配置文件,开发者可以轻松调整系统设置,如数据库连接、URL模式等。 三、MySQL数据库 MySQL是一种...
3. 第三阶段(4月至5月中旬):设计并实现模型、视图和控制器的接口,编写核心代码,建立数据库连接,实现数据存储和检索。 4. 第四阶段(5月中旬至6月初):进行系统集成和测试,确保各个模块协同工作,修复可能...