installshield 脚本 在卸载过程执行_数据库查询历史同期和总计脚本

本文主要是介绍installshield 脚本 在卸载过程执行_数据库查询历史同期和总计脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、需求

1. 需求背景

需求一:统计当前及历史同期业务量并在一个字段内展示;

需求二:统计指定时间段内业务总量;

2. 最终效果展示

2.1 模拟表的表结构

本文以水果销量模拟真实的业务量

11f4d4916a4264ee6c36f1f569943b31.png

2.2 当前及历史同期效果展示

统计近7天内和历史同期各水果销量

325ebaa38b18b08814684f00da0c50b7.png

2.3 某时间段内总计效果展示

统计2019年全年各水果销量总计

c7747b6a076acfefa718e383209a970b.png

二.脚本

1. 当前及历史同期脚本

#!/usr/bin/ksh​#运行示例:sh fru_calc_day.sh​#本脚本用于统计每日及同期历史的水果销量​#统计时间从前D1天开始,默认为7,即统计从7天前开始D1=7#统计时间到前D2天,默认为1,即截止到前一天D2=1#历史数据,默认为12,即前12个月(去年)M=12​#日志时间格式filedate=`date +"%Y%m%d%H%M"`#日志名REPORT="/tmp/fru/report$filedate.log"​#数据库用户名/密码,根据实际情况填写DBUSER=dbuserDBPASSWD=password​#数据库环境变量,根据实际情况填写export ORACLE_SID=mydbexport ORACLE_BASE=/oracle/app/10.2.0export ORACLE_HOME=$ORACLE_BASE/db_1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"​​FRU_CALC() {echo "***************************每日水果销量统计***************************">> $REPORTsqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'conn $DBUSER/$DBPASSWDset linesize 999set pages 999col 日期 format a30col 苹果(历史同期) format a30col 梨子(历史同期) format a30col 香蕉(历史同期) format a30col 橙子(历史同期) format a30select f.day as "日期",       f.app as "苹果(历史同期)",       f.pea as "梨子(历史同期)",       f.ban as "香蕉(历史同期)",       f.ora as "橙子(历史同期)"  from (select t.day,               t.app || '(' || y.app || ')' as app,               t.pea || '(' || y.pea || ')' as pea,               t.ban || '(' || y.ban || ')' as ban,               t.ora || '(' || y.ora || ')' as ora          from (select a.day,                       a.apple as app,                       a.pear as pea,                       a.banana as ban,                       a.orange as ora                  from fruits a                 where a.day between TRUNC(sysdate - $D1, 'DD') and                       TRUNC(sysdate - $D2, 'DD')) t,               (select a.day,                       a.apple as app,                       a.pear as pea,                       a.banana as ban,                       a.orange as ora                  from fruits a                 where a.day between                       TRUNC(ADD_MONTHS(sysdate, -$M) - $D1, 'DD') and                       TRUNC(ADD_MONTHS(sysdate, -$M) - $D2, 'DD')) y         where ADD_MONTHS(t.day, -$M) = y.day) forder by f.day;quitEOS}​FRU_CALC >>$REPORT 2>&1​echo "*****************************end*****************************">> $REPORT

本文脚本的执行shell为/usr/bin/ksh,可根据实际情况修改,运行命令echo $SHELL可查看当前用户的shell类型。

2. 某时间段内总计脚本

#!/usr/bin/ksh​#运行示例:sh  fru_calc_sum.sh 20190101 20191231#本脚本用于统计月度、年度或任意时间段内水果销量汇总​#参数1,开始时间startdate="$1"#参数2,结束时间enddate="$2"​#日志时间格式filedate=`date +"%Y%m%d%H%M"`#日志名REPORT="/tmp/fru/report$filedate.log"​#数据库用户名/密码,根据实际情况填写DBUSER=dbuserDBPASSWD=password​#数据库环境变量,根据实际情况填写export ORACLE_SID=mydbexport ORACLE_BASE=/oracle/app/10.2.0export ORACLE_HOME=$ORACLE_BASE/db_1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"​​​FRU_CALC() {echo "***********历史水果销量总计:'$startdate'至'$enddate'***********">> $REPORTsqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'conn $DBUSER/$DBPASSWDset linesize 999set pages 999select sum(f.app) as "苹果",       sum(f.pea) as "梨子",       sum(f.ban) as "香蕉",       sum(f.ora) as "橙子"  from (select a.day,               sum(a.apple) as app,               sum(a.pear) as pea,               sum(a.banana) as ban,               sum(a.orange) as ora          from fruits a         where a.day between to_date('$startdate', 'yyyymmdd') and               to_date('$enddate', 'yyyymmdd')         group by a.day) f;quitEOS}​FRU_CALC >>$REPORT 2>&1​echo "*****************************end*****************************">> $REPORT

统计20190101至 20191231水果销量汇总。

三、运行效果

1. 当前及历史同期查询

f2317d5da4cba347aead2d7928357e41.png

2. 某时间段内总计查询

a5b2ed0435e056fe0ba19dd7839b4343.png

本文所有脚本已上传github:https://github.com/loong576/scripts-for-select-now-history-and-sum-from-db/archive/master.zip

这篇关于installshield 脚本 在卸载过程执行_数据库查询历史同期和总计脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233473

相关文章

MyBatis-Plus逻辑删除实现过程

《MyBatis-Plus逻辑删除实现过程》本文介绍了MyBatis-Plus如何实现逻辑删除功能,包括自动填充字段、配置与实现步骤、常见应用场景,并展示了如何使用remove方法进行逻辑删除,逻辑删... 目录1. 逻辑删除的必要性编程1.1 逻辑删除的定义1.2 逻辑删php除的优点1.3 适用场景2.

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

MyBatis-Plus使用动态表名分表查询的实现

《MyBatis-Plus使用动态表名分表查询的实现》本文主要介绍了MyBatis-Plus使用动态表名分表查询,主要是动态修改表名的几种常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录1. 引入依赖2. myBATis-plus配置3. TenantContext 类:租户上下文

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

Java通过ServerSocket与Socket实现通信过程

《Java通过ServerSocket与Socket实现通信过程》本文介绍了Java中的ServerSocket和Socket类,详细讲解了它们的构造方法和使用场景,并通过一个简单的通信示例展示了如何... 目录1 ServerSocket2 Socket3 服务器端4 客户端5 运行结果6 设置超时总结1

通过DBeaver连接GaussDB数据库的实战案例

《通过DBeaver连接GaussDB数据库的实战案例》DBeaver是一个通用的数据库客户端,可以通过配置不同驱动连接各种不同的数据库,:本文主要介绍通过DBeaver连接GaussDB数据库的... 目录​一、前置条件​二、连接步骤​三、常见问题与解决方案​1. 驱动未找到​2. 连接超时​3. 权限不