用shell把执行的两条sql语句相加并输出数据库名和相加的值以tab健隔开
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,SELECT SUM(PresentSum) FROM `Lg_ConsumeDetail0` WHERE ConsumeDate < '2016-11-01' AND OpId != 300;+SE
千家信息网最后更新 2026年11月02日用shell把执行的两条sql语句相加并输出数据库名和相加的值以tab健隔开
SELECT SUM(PresentSum) FROM `Lg_ConsumeDetail0` WHERE ConsumeDate < '2016-11-01' AND OpId != 300;
+
SELECT SUM(PresentSum) FROM `Lg_ConsumeDetail1` WHERE ConsumeDate < '2016-11-01' AND OpId != 300;
每次返回的是+号上下两句sql查询的和。
注意,有可能其中一句sql返回的是NULL或者报错信息(没有这个表)。
格试如下:
输出结果
数据库名1 sql1+sql2的和
数据库名2 sql1+sql2的和
数据库名3 sql1+sql2的和
... ...
中间要以tab健隔开
代码如下:
#!/bin/bashUSER='root'PASSWD='123456'IP='192.168.1.1'for i in tzpay tzpay360 tzpay_179 tzpay_9377 tzpay_dx2 tzpay_dx3 tzpay_dx4 tzpay_dx5 tzpay_dx6 tzpay_lt1 tzpay_lt2 tzpay_lt3 tzpay_lt4 tzpay_yydo table1=$(mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail0 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk '{print $1}') table4=$(mysql -u$USER -p$PASSWD -h$IP $i -e 'show tables like "Lg_ConsumeDetail0"' | wc -l) #判断存不存在表0,不存在则打印表1的值,跳过本次循环 if [ $table4 -eq 0 ];then mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail1 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk '{print b"\t"$1}' continue fi table2=$(mysql -u$USER -p$PASSWD -h$IP $i -e 'show tables like "Lg_ConsumeDetail1"' | wc -l) #判断存不存在表1,不存在则打印表0的值,跳过本次循环 if [ $table2 -eq 0 ];then mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail0 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk -vb=$i '{print b"\t"$1}' continue fi table3=$(mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail1 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk '{print $1}') #判断表1和表0同时为NULL的话,则直接输出NULL,跳过本次循环 if [ $table3 == "NULL" ] && [ $table1 == "NULL" ];then echo NULL | awk -vb=$i '{print b"\t"$1}' continue fi #判断表1为NULL的话,则直接输出表0的值,跳过本次循环 if [ $table3 == "NULL" ];then mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail0 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk -vb=$i '{print b"\t"$1}' continue fi #判断表0为NULL的话,则直接输出表1的值,跳过本次循环 if [ $table1 == "NULL" ];then mysql -u$USER -p$PASSWD -h$IP $i -e "SELECT SUM(BasicSum) FROM Lg_ConsumeDetail1 WHERE ConsumeDate < '2016-11-01' AND OpId = 300;" | tail -1 | awk '{print b"\t"$1}' continue fi #上面判断都不存的话,就把表0和表1的值相加输出 expr $table1 + $table3 | awk -vb=$i '{print b"\t"$1}' done执行结果如下:
[root@10-9-181-186 opt]# sh sql_sum.shtzpay 69768460tzpay360 23185990tzpay_179 1259110tzpay_9377 57750tzpay_dx2 32938190tzpay_dx3 33270350tzpay_dx4 12540690tzpay_dx5 13220880tzpay_dx6 NULLtzpay_lt1 33962100tzpay_lt2 23586690tzpay_lt3 10345880tzpay_lt4 NULLtzpay_yy NULL
输出
循环
数据
数据库
结果
上下
代码
信息
同时
查询
语句
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
耶加雪菲
互联网科技公司排名
西安纸贵互联网科技有限公司
疫情对互联网科技公司影响
互联网巨头反垄断金融科技
科技互联网技术
艾特科技互联网
宜安科技 互联网金融
伴你行互联网科技有限公司
重庆科技学院互联网
老年人脱离互联网科技的作文
北京大学互联网科技怎么样
互联网科技有哪些公司
想开互联网科技公司怎么样
特约风豹互联网科技为什么扣费
互联网科技公司营业执照怎么办理
互联网营销推广黑科技
陕西彩京云互联网科技有限公司
互联网科技快速发展优美句子
山东特亿宝互联网科技有限公司
重生之互联网科技帝国
远信互联网科技
友谊互联网络科技
彤创互联网科技有限公司
明优互联网科技有限公司
厦门江牛科技互联网
科技信息时代互联网发展
宁波允成互联网科技有限公司
高科技和互联网的现代国家