qq_16788471
qq_16788471
采纳率100%
2019-02-18 16:48

mysql如何将查出来的某个字段变成表头

40
已采纳

图片说明
其中,装备名称是从前台选择的,要统计各单位的数量,表头是选的装备,求解决方案
(**装备名称是前台传来的并且是编码,所以关联了xlb类型信息表,数量是统计的当前库存的根据在库状态**)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • nero0703 45度凝视 2年前

    原始数据如下:

    select * from test.t_test t;
    

    图片说明
    转换sql:

    select t.cpn_name as `单位名称`, 
        sum(if(t.device_name='夜视仪', t.total, 0)) as `夜视仪`,
        sum(if(t.device_name='水壶', t.total, 0)) as `水壶`,
        sum(if(t.device_name='警戒带', t.total, 0)) as `警戒带`,
        sum(if(t.device_name='称重器', t.total, 0)) as `称重器`,
        sum(if(t.device_name='路障', t.total, 0)) as `路障`,
        sum(if(t.device_name='防爆毯', t.total, 0)) as `防爆毯`,
        sum(if(t.device_name='发电机', t.total, 0)) as `发电机`
            from test.t_test t group by t.cpn_name;
    

    图片说明

    点赞 评论 复制链接分享
  • qq_33855563 o(╯□╰)o ! 2年前

    图片说明

    点赞 1 评论 复制链接分享
  • huangbaokang 黄宝康 2年前

    你这个应该是行转列的问题,网上有很多这样的解决方法

    点赞 评论 复制链接分享
  • lunatic_1 就一个疯子 2年前

    你这个要么在sql里面做比较麻烦,要么全查出来在js里面组装,如果对查询速度没什么要求,可以分类查询单位名称和设备名称谁的种类少就用谁分类然后用另一类排序每次查一排或者一行。

    点赞 评论 复制链接分享
  • weixin_42920757 小小菜鸟2020 2年前

    做是可以做,但是单位名称数量和装备名称数量都需要确定,而且都需要写死在sql中,速度较慢,不建议这么做,比如:

    select (select count(*) from table where  '装备名称'= ''夜视仪 and ‘'单位名称'=''市本级),······
    

    建议先查出数据,数据转换在代码中做,或者可以新建一张表。

    点赞 评论 复制链接分享

相关推荐