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

相关文章

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,