sakurwars 2020-08-20 11:00 采纳率: 50%
浏览 127
已采纳

求助个路大神,行字段相同的多个查询结果,合并成一个表之后 如何在每个结果上增加一行表头应该如何操作

有两个表

A表

图片说明

B表

图片说明

结果1

图片说明

SELECT IFNULL(MODE,'总计'),2020年8月1日,2020年8月2日,2020年8月2日,2020年8月3日,2020年8月4日,2020年8月5日,8月金额总计
FROM
(
    SELECT 
    a.mode,
    SUM(CASE WHEN b.mytime = '2020-08-01' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月1日,
    SUM(CASE WHEN b.mytime = '2020-08-02' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月2日,
    SUM(CASE WHEN b.mytime = '2020-08-03' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月3日,
    SUM(CASE WHEN b.mytime = '2020-08-04' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月4日,
    SUM(CASE WHEN b.mytime = '2020-08-05' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月5日,
    SUM(CASE WHEN b.mytime LIKE '2020-08%' THEN IFNULL(b.total_price,0) ELSE 0 END) 8月金额总计
    FROM 
    (SELECT * FROM a ORDER BY MODE) AS a
    LEFT JOIN
    b b
    ON a.id = b.pid
    GROUP BY a.mode
    WITH ROLLUP
) AS TEMP

结果2

图片说明

SELECT IFNULL(category,'总计'),2020年8月1日,2020年8月2日,2020年8月2日,2020年8月3日,2020年8月4日,2020年8月5日,8月金额总计
FROM
(
    SELECT 
    a.category,
    SUM(CASE WHEN b.mytime = '2020-08-01' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月1日,
    SUM(CASE WHEN b.mytime = '2020-08-02' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月2日,
    SUM(CASE WHEN b.mytime = '2020-08-03' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月3日,
    SUM(CASE WHEN b.mytime = '2020-08-04' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月4日,
    SUM(CASE WHEN b.mytime = '2020-08-05' THEN IFNULL(b.total_price,0) ELSE 0 END) 2020年8月5日,
    SUM(CASE WHEN b.mytime LIKE '2020-08%' THEN IFNULL(b.total_price,0) ELSE 0 END) 8月金额总计
    FROM 
    (SELECT * FROM a ORDER BY category) AS a
    LEFT JOIN
    b b
    ON a.id = b.pid
    GROUP BY a.category
    WITH ROLLUP
) AS TEMP

问题:
希望得到下面效果,并且导出的表格数据部分需要是“数值”形式而非“文本”形式应该如何写?

图片说明

试着用过union all 但是达不到这个效果。

感谢各路大神的帮助

结尾再次感谢 jingluan666 、 have_power 曾经给与的帮助 感谢!

  • 写回答

1条回答 默认 最新

  • 路漫漫兮其修远兮 2020-08-20 11:58
    关注

    union all 上几个查询常量值,比如

    union all select  '销售模式','','','',''
    

    在union表头字段,把字段个数对应上。excel类型是没有办法的,自己去设置excel表格格式吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 8月23日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名