萧寒往往 2015-12-07 14:02 采纳率: 50%
浏览 583

我想把这个表的详情拆分下。

图片说明
字段中 的规律是 商品名数量单位价格
没有分割符号,想把详情拆分成四列(商品-数量-单位-价格)放入新表中 怎么做单位可能会出现在前面的字段中,单位也不固定。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 23:23
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要将这个包含多行数据的表格拆分为四个字段(商品、数量、单位和价格),你可以使用SQL中的子查询。以下是一个可能的解决方案:

    -- 假设你的原始表名为orders
    CREATE TABLE new_orders AS
    SELECT
        order_id,
        SUM(quantity) AS total_quantity,
        unit,
        SUM(price * quantity) AS total_price
    FROM orders
    GROUP BY order_id, unit;
    
    -- 这里添加了额外的子查询来处理单位和价格部分
    INSERT INTO new_orders (
        order_id,
        total_quantity,
        unit,
        total_price
    )
    SELECT
        order_id,
        SUM(quantity) AS total_quantity,
        unit,
        SUM(price * quantity) AS total_price
    FROM orders
    WHERE unit IS NOT NULL AND unit != ''
    UNION ALL
    SELECT
        order_id,
        SUM(quantity) AS total_quantity,
        unit,
        SUM(price * quantity) AS total_price
    FROM orders
    WHERE unit IS NULL;
    

    在这个解决方案中,我们首先通过GROUP BY对每个订单进行分组,并计算总数量和总价。然后,我们在子查询中使用SUM()函数分别计算总数量和总价。

    对于单位和单价,我们使用WHERE子句过滤出那些既有单位又有单价的商品。如果单位为空或字符串为空,那么我们就将其设置为NULL。这样可以确保我们的结果只包含既有关联单位也有关联价格的商品。

    请注意,这只是一个基本示例。在实际应用中,你可能需要根据你的具体需求调整这个脚本。例如,你可能需要对单元格中的空值进行不同的操作,或者处理更多的错误情况。

    评论

报告相同问题?