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

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2