navicat导出查询结果为excel或csv格式

前言

 运营想要导出新能源项目的从今年1月份到现在的所有订单的数据,开始后台管理界面上有导出功能,但是导出的话因为只能选择当前页,所以不能全部导出,不想要一个个点击导出,后来运营就找到了产品,产品就找到了我们,让我们直接写个sql,让项目组长连接生产上的数据库执行sql,从navicat再把查到的数据导成excel或者csv格式的

推荐博客

case when then else多个条件_SQL高级知识——CASE_新文达·小文姐姐的博客-CSDN博客 

SQL -利用Case When Then Else End 多条件判断 - Be-myself - 博客园 (cnblogs.com)

SQL中CASE 的用法 转载 - maanshancss - 博客园 (cnblogs.com) 

利用Case When Then多条件判断 - 馨馨妙 - 博客园 (cnblogs.com)

mysql实现跨库查询 - 西北西南 - 博客园 (cnblogs.com)

left join 基本用法_wheredata的博客-CSDN博客

navicat如何导出查询结果数据成excel-百度经验 (baidu.com)

sql语句中直接将时间戳转化为时间格式_nuc_badaomen的博客-CSDN博客 

需求 

要导出的数据需要从两个数据库里混合得到,因为要导出的数据里有省和市的名称,所以要从baseconfigservice数据库里根据provinceCode从province表里拿到省名称和用cityCode从city表里拿到城市名称,剩下就是订单的一些数据了,包括订单的一些基础数据要从orderservice数据库里的orders表里拿到,订单的支付数据要从orderservice库里的ordercost表里拿到,此时所有的数据拿到,条件是要拿创建时间从今年1月份到现在为止的所有订单

涉及到的东西:

数据库     2个    baseconfigservice   orderservice

表             4个    province、city           orders、ordercost

关系            orders表的主键是ordercost的外键(虽然没有实际建外键)

条件         今年1月份<= 订单创建时间 <=现在时间

多数据库表查询+left join用法 + sql中的case when then end用法 + 把10位数的时间戳转换成时间格式+navicat将查询结果以excel或csv格式导出

过程     

 要导出的格式如下

表如下:

orderStatus订单状态数据库表中存的是int类型,要转成对应的名称---------》case when then end

gmtCreate创建时间存的是10位的时间戳,要转成对应的时间格式--------》10位时间戳转时间格式

sql如下

SELECT
  o.orderNo AS "订单编号",
  o.interestedCarName AS "咨询车型",
  p.name AS "省份",
  ct.name AS "城市",
  o.memberName AS "客户名称",
  o.tel AS "联系电话",
  (
CASE
  o.orderStatus 
  WHEN 100 THEN
  "待联系" 
  WHEN 110 THEN
  "联系中" 
  WHEN 120 THEN
  "待支付" 
  WHEN 125 THEN
  "支付中" 
  WHEN 130 THEN
  "待提车" 
  WHEN 140 THEN
  "待退款" 
  WHEN 150 THEN
  "退款中" 
  WHEN 160 THEN
  "已退款" 
  WHEN 200 THEN
  "已成交" 
  WHEN 210 THEN
  "已关闭" ELSE "" 
END 
  ) AS "订单状态",
  c.prePayment AS "订金金额",
  FROM_UNIXTIME(o.gmtCreate,'%Y-%m-%d %H:%i:%s') AS "创建时间",
  FROM_UNIXTIME(o.gmtModified,'%Y-%m-%d %H:%i:%s') AS "更新时间",
  FROM_UNIXTIME(c.paymentTime,'%Y-%m-%d %H:%i:%s') As "支付定金时间",
  FROM_UNIXTIME(o.dealTime,'%Y-%m-%d %H:%i:%s') as "成交时间",
  o.accountName AS "订单负责人",
  o.recommendId AS "推广员ID",
  o.followRemark AS "备注" 
FROM
  orderservice.orders o left join
  orderservice.ordercost c
   on o.id = c.orderId  left join
  baseconfigservice.province p
  on o.provinceCode = p.code left join
  baseconfigservice.city ct 
  on o.cityCode = ct.code
WHERE
 c.orderId in( SELECT id FROM orders WHERE gmtCreate >= 1609430410 
  AND gmtCreate <= UNIX_TIMESTAMP( ))

最终导成的结果如下

 

 明日再补!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值