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

相关文章

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

SpringBoot整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s