• group_concat的使用


    1、场景

    仓库使用系统实现了先进先出,给仓库的备货单原先设计如下模式:

    tx3表:

    image

    不同的批次分开行显示,仓库从这个备货单可以知道这个货品需要备货哪些批次,多少数量

    用了几天,仓库对此备货单样式提出如下看法

    • 一个备货单很多个货品,一个货品如果存在很多批次,一个备货单需要打印几张纸,比较麻烦
    • 不够直观,希望很直观看到某个货品总的需求量,需要备货的批次与分别的数量

    于是,使用group_concat实现此需求

    2、group_concat的用法

    group_concat的用途:按分组来把多行数据显示在一行,将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

    完整语法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

    说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

    具体使用如下,以零件号,品名,snp分组,把批次,此批次的数量,此批次的箱数连接起来,逗号分割

    select
    零件号,
    品名,
    snp,
    sum(需求数量) 需求数量,
    group_concat(批次,':',需求数量,'个:',箱数,'') 批次信息
    from tx3 group by 零件号,品名,snp

    结果:

    image

    从仓库备货的角度,这个样式一看就知道货品总的需求数,需要备货的批次信息,看上去很直观

    同时,数据行也不会太多,一般打印一张A4纸就可以

    确实要三现主义,不站在仓库的角度还真考虑不到这种细节

  • 相关阅读:
    菜鸟快速自学java00之变量类型
    php 接口和抽象类
    java 三大特性之多态性
    设计模式
    依赖注入
    Java设计模式工厂模式
    php 设计模式之策略模式
    大数的概述
    熟悉常用的Linux操作
    GridView动态添加列
  • 原文地址:https://www.cnblogs.com/fuqu/p/10041286.html
Copyright © 2020-2023  润新知