mysql - 合并两行mysql

标签 mysql

想知道你们是否可以帮助我,我正在尝试将我的这张表的两行合并为一行。

目前我的数据是这样的

    Item                Descr       Total       Proj
    Fuse                abc         0           Inventory
    Fuse - Labor        def         19415       Inventory
    Jumper              ghi         0           Inventory
    Jumper - Labor      jkl         434.14      Inventory

我希望做的是合并 Desc 列的行。我能够做到,但它还不完全正确,我想获得具有总计值的行,而我使用的当前查询仅获得总值为 0 的行

    SELECT 

    SUBSTRING_INDEX(Item, ' - ', 1) as lineItem,
    GROUP_CONCAT(DISTINCT Descr SEPARATOR '\n\n') as description,
    Total,
    Project

    FROM table1 
    WHERE deleted = 0
    AND Proj = "Inventory"

    GROUP BY SUBSTRING_INDEX(Item, ' - ', 1)

我试过的查询输出是这样的:

    Item        Descr       Total       Proj
    Fuse        abc         0           Inventory

                def
    Jumper      ghi         0           Inventory

                jkl

我希望得到的是这样的输出:

    Item        Descr       Total       Proj
    Fuse        abc         19415       Inventory

                def
    Jumper      ghi         434.14      Inventory

                jkl

我应该如何调整我的查询以获得上面的输出?谢谢

最佳答案

只需对总数求和即可使您接近所需的输出:

SELECT 
    SUBSTRING_INDEX(Item, ' - ', 1) AS lineItem,
    GROUP_CONCAT(DISTINCT Descr SEPARATOR '\n\n') AS description,
    SUM(Total) AS Total,
    Project
FROM table1 
WHERE deleted = 0 AND Project = 'Inventory'
GROUP BY
    SUBSTRING_INDEX(Item, ' - ', 1),
    Project;

请注意,我们还必须按项目分组。

关于mysql - 合并两行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457749/

相关文章:

mysql - 是什么导致我的脚本选择部分出错?

MYSQL - 当不正确时返回选择语句?

mysql - Ofbiz:无法与 helperName [localmysql] 的数据库建立连接

java - 为什么我收到 NumberFormatException

mysql - 允许的内存大小在非 PHP MySQL 导入期间耗尽

javascript - 通过输入 mysql 值使用 javascript 创建 html 表

mysql - M-M 主动 mysql 复制如何处理唯一键值

python - 通过声明性映射创建架构 : Base.metadata.create_all(engine) 不起作用

mysql - 从存储过程输出 JOINS 的不同值

MySQL 错误 : Not connected while trying to connect via command line