前言:最近在核对两个系统的数据,通过数据库统一查询后,简单一些。写了以下的查询语句,留在这里当做备份。
期间因为select语句执行顺序,遇到where语句引用别名错误的问题,将select语句的顺序整理如下:
SELECT语句的完整语法为:
- MySQL允许在HAVING子句中使用别名,sql不允许。
(7) SELECT
(8) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number>
1、查询两个系统的合计金额
SELECT
2、查询明细数据
因为底表中没有唯一标识,一个发货退货单号对应着好几条存货,所以首先创建一个新表,分组汇总,用发货退货单号作为主键。
-- crm收入
#将crm收入查询结果保存到新表中
CREATE
#查看列名
SHOW
#修改列名
ALTER
#更改列类型
ALTER TABLE C_income MODIFY 业务员名称 VARCHAR(30);
#查询新表中的重复值
select
-- u8收入
#将u8收入查询结果保存到新表中
CREATE
#查看列名
SHOW
#修改列名
ALTER
#查询新表中的重复值
select
查看调整完底表后的数据是否一致
#查看4个表的合计是否相同
SELECT
3、比对明细数据
#crm有此订单,U8中没有此订单
SELECT
#u8有此订单,crm中没有此订单
#明细
SELECT
#合计
SELECT
-- crm、u8两者都有此订单,但是对应明细数据不同
#合计
SELECT
#业务员
#先将业务员字段中的'(密码)'替换
UPDATE
#比对数据
SELECT
#部门
SELECT
4、比对分组数据
-- 部门
#通过部门分组
SELECT
#crm部门分组汇总
SELECT
#单据对应的部门不一样
SELECT