配送单MYSQL ,一点都不机智
这是配送单制作,后面修改了下表 . 写的太乱. 不过也不想去修改了.
放在这里了.反正还能用. 不然就坑爹了. 以后写好一点.
这都是些神马, 太难受了.
/*
配送单制作,缺少商品规格,以及库存查询.
查询是否有库存进行发货.
真正的配送单制作。 依次作为配送单配送.
*/ DROP TEMPORARY TABLE IF EXISTS baixi;
CREATE TEMPORARY TABLE baixi
SELECT gb.bar_code AS bar_code, gb.`name` AS NAME
, ROUND(SUM(number) * (AVG(igs.in_price) / 10000), 2) AS sum_price
, SUM(igs.number) AS all_number
, ROUND(AVG(igs.in_price) / 10000, 2) AS avg_price
FROM arm_changsha.inv_goods_stock igs
INNER JOIN arm_changsha.goods_base gb ON gb.id = igs.goods_id
WHERE igs.del_flag = "0"
AND gb.`name` NOT LIKE "测试%"
AND igs.department_id IN (25192,1000)
AND gb.bar_code IN (
SELECT gb.bar_code FROM arm_changsha.inv_goods_stock igs
INNER JOIN arm_changsha.goods_base gb ON gb.id = igs.goods_id
WHERE igs.department_id = 25192
)
GROUP BY gb.bar_code
ORDER BY igs.department_id DESC
; /*
门店所有库存
*/
DROP TEMPORARY TABLE IF EXISTS HEBAIXI;
CREATE TEMPORARY TABLE HEBAIXI
SELECT igs.department_id,CONCAT(igs.department_id,"_",gb.bar_code) as sid ,gb.bar_code AS bar_code, gb.`name` AS NAME
, ROUND(SUM(number) * (AVG(igs.in_price) / 10000), 2) AS sum_price
, SUM(igs.number) AS all_number
, ROUND(AVG(igs.in_price) / 10000, 2) AS avg_price
FROM arm_changsha.inv_goods_stock igs
INNER JOIN arm_changsha.goods_base gb ON gb.id = igs.goods_id
WHERE igs.del_flag = "0"
AND igs.`status` = 1
AND gb.`name` NOT LIKE "测试%"
AND igs.department_id NOT IN (25192,1000,4000)
AND gb.bar_code IN (
SELECT gb.bar_code FROM arm_changsha.inv_goods_stock igs
INNER JOIN arm_changsha.goods_base gb ON gb.id = igs.goods_id
WHERE igs.department_id = 25192
)
GROUP BY gb.bar_code,igs.department_id
ORDER BY igs.department_id DESC
; /*门店待核销库存*/
DROP TEMPORARY TABLE IF EXISTS MDKC;
CREATE TEMPORARY TABLE MDKC
SELECT t.org_name, CONCAT(tg.org_id, "_", tg.goods_barcode) AS sid
, tg.org_id, tg.goods_barcode, tg.goods_name, COUNT(tg.goods_barcode) AS number
FROM mabao51.trade_goods_onl_4_bi tg
LEFT JOIN mabao51.trade_onl t ON tg.trade_onl_id = t.id
WHERE tg.org_id != 4000 -- AND t.confirm_time BETWEEN "2019-05-12 00:00:00" AND "2019-05-15 00:00:00"
-- AND t.`status` = 5
AND tg.`status` = 4
AND tg.goods_name NOT LIKE "%测试%"
GROUP BY tg.org_id, tg.goods_barcode
; /*门店可用库存*/
DROP TEMPORARY TABLE IF EXISTS MDKYKC;
CREATE TEMPORARY TABLE MDKYKC
SELECT H.*,IFNULL(H.all_number - M.number, H.all_number) as MD_mumber FROM HEBAIXI AS H LEFT JOIN MDKC AS M ON H.sid = M.sid ; /*
T 周期内,待发货制作配送单商品。
*/
DROP TEMPORARY TABLE IF EXISTS sakura;
CREATE TEMPORARY TABLE sakura
SELECT t.id_onl ,tg.id,t.`status`,t.status_label,tg.`status`as 状态,
tg.status_label as baixi,
t.confirm_time,t.org_name,tg.org_id,1204 as invcode,t.consignee_name,t.consignee_phone,tg.goods_barcode,tg.goods_name,COUNT(tg.goods_barcode) AS number FROM mabao51.trade_goods_onl_4_bi as tg
LEFT JOIN mabao51.trade_onl as t on tg.trade_onl_id = t.id
WHERE
tg.org_id != 4000
-- AND t.confirm_time BETWEEN "2019-05-30 00:00:00" AND "2019-05-31 00:00:00"
-- AND t.confirm_time BETWEEN "2019-05-01 00:00:00" AND "2019-05-15 00:00:00"
AND t.confirm_time < "2019-05-30 00:00:00"
AND t.`status` BETWEEN 2 AND 8
AND tg.`status` BETWEEN 2 AND 2
and tg.goods_name NOT LIKE "%测试%"
GROUP BY t.id_onl,tg.goods_barcode
; SELECT s.*,b.all_number as 仓库可用库存,c.MD_mumber as 门店可用库存 FROM baixi as b RIGHT JOIN sakura as s on b.bar_code = s.goods_barcode
LEFT JOIN MDKYKC AS c ON c.sid = CONCAT(s.org_id,"_",s.goods_barcode)
WHERE
s.goods_barcode NOT IN (6944639802717,"6798532102036-1")
-- WHERE
-- id_onl = "E20190515160924067500013"
ORDER BY s.confirm_time DESC
LIMIT 3000
配送单MYSQL ,一点都不机智的更多相关文章
- 为什么很多网站的表单提交按钮都是用<a>标签
之 前看过一些文章,说是用a标签来代替submit按钮更好一些,因为submit按钮在IE6下会有一些兼容的问题,不好统一,而且input的行高在各 浏览器参差不齐,还不能用line-height控制 ...
- 网管把握市场需求,其实一点都不可怜 转载于 [http://tonyxiaohome.blog.51cto.com/925273/955589]
呵呵,这是我到51CTO做实习斑竹,回复的第一篇帖子,原帖在这里: http://bbs.51cto.com/thread-940532-1.html 这位朋友可能最近受到点挫折,所以有点小灰心,我呢 ...
- Magento打印(配送单、退款单、发票)时PDF中的乱码问题
我使用Magento1.4.2,在其自带的TTF文件不能很好地解析中文字符,TTF文件的位置在网站根目录下的/lib/LinLibertineFont/中.打印的中文字符都是这样的 解决方法: 1.在 ...
- 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 3月14日,腾讯旗下知名手游<QQ炫舞>正式上线各大应用商店,并迅速登上App Store免 ...
- 超简单开发自己的php框架一点都不难
(转)https://blog.csdn.net/qq_33862644/article/details/79344331 写框架的极简思路: 接收,打印参数想怎么弄.如 获取配置文件的方法,根据传过 ...
- HDU4578-代码一点都不长的线段树
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门 原题目描述在最下面. 4种操作,1:区间加法,2:区间乘法,3:区间的所有数都变成一个数,4:访问区间每个数的p次方 ...
- 数据可视化之powerBI入门(九)PowerBI数据建模:其实一点都不高深
https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. ...
- 面试官问我CAS,我一点都不慌
文章以纯面试的角度去讲解,所以有很多的细节是未铺垫的. 文章中写到的处理线程安全的思路每一项技术都可以写出一篇文章,AQS.Synchronized.Atomic...周末肝起来!下周再来给大家安排! ...
- MongoDB for OPS 01:服务介绍与基本使用
写在前面的话 数据库产品已经学习了两个,MySQL 和 Redis.接下来开始研究另外一款 NoSQL 产品 MongoDB,注意跟芒果没啥关系.该产品对于运维来说,相对于操作少一些. 关于 Mong ...
随机推荐
- CentOS vim的使用
安装vim工具 [root@bogon ~]# yum install -y vim-enhanced 卸载vim工具 [root@bogon ~]# yum remove -y vim* vim常用 ...
- for in 和for of的区别
for in 和for of的区别:https://www.jianshu.com/p/c43f418d6bf0 1 遍历数组通常用for循环 ES5的话也可以使用forEach,ES5具有遍历数组功 ...
- Angular2+之模态框-使用ngx-bootstrap包中的模态框组件实现
模态框是项目中经常会用到的一个公共功能,通常会被用左提示框或者扩展选项框. 下面,我用一个小例子来简单展示实现模态框功能的过程: 1.为项目加包: ng add ngx-bootstrap 2.在xx ...
- 4、numpy——创建数组
1.普通创建——np.array() 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. import numpy as ...
- go 学习之io/ioutil包
// Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情// 并且始终成功返回.var Discard io.Writer = devNull(0) // Re ...
- Java 小技巧和在Java避免NullPonintException的最佳方法(翻译)
前几天就g+里面看到有人引用这篇博文.看了一下.受益颇多. 所以翻译过来,希望和大家一起学习.本人英语水平有限,假设有错,请大家指正. 原文地址(须要翻墙):http://ja ...
- Zookeeper-技术专区-配置以及学习
zookeeper 一.zookeeper下载 zookeeper下载可以直接去官网进行下载 https://zookeeper.apache.org/releases.html ,可以选择最新版本 ...
- MapReduce工作流程及Shuffle原理概述
引言: 虽然MapReduce计算框架简化了分布式程序设计,将所有的并行程序均需要关注的设计细节抽象成公共模块并交由系统实现,用户只需关注自己的应用程序的逻辑实现,提高了开发效率,但是开发如果对Map ...
- BUUCTF--reverse3
测试文件:https://buuoj.cn/files/aa4f6c7e8d5171d520b95420ee570e79/a9d22a0e-928d-4bb4-8525-e38c9481469e.ra ...
- traceroute学习
之前只知道ping telnet命令,后面学习了traceroute命令 ping最常用的,看是否可以ping通ip,查看网络是否可达 telnet探测端口是否通,telnet ip port tra ...