真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)建站專注于瑪多企業(yè)網(wǎng)站建設(shè),自適應網(wǎng)站建設(shè),商城開發(fā)?,敹嗑W(wǎng)站建設(shè)公司,為瑪多等地區(qū)提供建站服務。全流程按需開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

一、需求

1. 需求背景

  • 需求一:統(tǒng)計當前及歷史同期業(yè)務量并在一個字段內(nèi)展示;

  • 需求二:統(tǒng)計指定時間段內(nèi)業(yè)務總量;

2. 最終效果展示

2.1 模擬表的表結(jié)構(gòu)

本文以水果銷量模擬真實的業(yè)務量

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

2.2 當前及歷史同期效果展示

統(tǒng)計近7天內(nèi)和歷史同期各水果銷量

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

2.3 某時間段內(nèi)總計效果展示

統(tǒng)計2019年全年各水果銷量總計

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

二.腳本

1. 當前及歷史同期腳本

#!/usr/bin/ksh

#運行示例:sh fru_calc_day.sh

#本腳本用于統(tǒng)計每日及同期歷史的水果銷量

#統(tǒng)計時間從前D1天開始,默認為7,即統(tǒng)計從7天前開始
D1=7
#統(tǒng)計時間到前D2天,默認為1,即截止到前一天
D2=1
#歷史數(shù)據(jù),默認為12,即前12個月(去年)
M=12

#日志時間格式
filedate=`date +"%Y%m%d%H%M"`
#日志名
REPORT="/tmp/fru/report$filedate.log"

#數(shù)據(jù)庫用戶名/密碼,根據(jù)實際情況填寫
DBUSER=dbuser
DBPASSWD=password

#數(shù)據(jù)庫環(huán)境變量,根據(jù)實際情況填寫
export ORACLE_SID=mydb
export ORACLE_BASE=/oracle/app/10.2.0
export ORACLE_HOME=$ORACLE_BASE/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"

FRU_CALC() {
echo "***************************每日水果銷量統(tǒng)計***************************">> $REPORT
sqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'
conn $DBUSER/$DBPASSWD
set linesize 999
set pages 999
col 日期 format a30
col 蘋果(歷史同期) format a30
col 梨子(歷史同期) format a30
col 香蕉(歷史同期) format a30
col 橙子(歷史同期) format a30
select 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) f
order by f.day;
quit
EOS
}

FRU_CALC >>$REPORT 2>&1

echo "*****************************end*****************************">> $REPORT

本文腳本的執(zhí)行shell為/usr/bin/ksh,可根據(jù)實際情況修改,運行命令echo $SHELL可查看當前用戶的shell類型。

2. 某時間段內(nèi)總計腳本

#!/usr/bin/ksh

#運行示例:sh  fru_calc_sum.sh 20190101 20191231
#本腳本用于統(tǒng)計月度、年度或任意時間段內(nèi)水果銷量匯總

#參數(shù)1,開始時間
startdate="$1"
#參數(shù)2,結(jié)束時間
enddate="$2"

#日志時間格式
filedate=`date +"%Y%m%d%H%M"`
#日志名
REPORT="/tmp/fru/report$filedate.log"

#數(shù)據(jù)庫用戶名/密碼,根據(jù)實際情況填寫
DBUSER=dbuser
DBPASSWD=password

#數(shù)據(jù)庫環(huán)境變量,根據(jù)實際情況填寫
export ORACLE_SID=mydb
export ORACLE_BASE=/oracle/app/10.2.0
export ORACLE_HOME=$ORACLE_BASE/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"

FRU_CALC() {
echo "***********歷史水果銷量總計:'$startdate'至'$enddate'***********">> $REPORT
sqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'
conn $DBUSER/$DBPASSWD
set linesize 999
set pages 999
select 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;
quit
EOS
}

FRU_CALC >>$REPORT 2>&1

echo "*****************************end*****************************">> $REPORT

統(tǒng)計20190101至 20191231水果銷量匯總。

三、運行效果

1. 當前及歷史同期查詢

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

2. 某時間段內(nèi)總計查詢

如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本

關(guān)于如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


新聞名稱:如何查詢數(shù)據(jù)庫內(nèi)歷史同期和總計腳本
鏈接地址:http://weahome.cn/article/jsdocd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部