You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复MySQL动态Pivot行转列时出现重复日期列的问题

问题原因

  • 你的子查询使用了SELECT DISTINCT scadenza, importo FROM ripartizione_rate,同时对日期和金额两个字段去重。同一个scadenza日期下存在多个不同的importo金额时,就会生成多条相同日期的聚合逻辑,最终导致出现重复的日期列。
  • 另外你拼接查询语句时,@answers和后面的FROM关键字之间缺少空格,可能会触发SQL语法错误。

修改方案

只需要将去重逻辑调整为仅针对scadenza字段,同时补全语句拼接的空格即可,修改后的完整存储过程如下:

BEGIN
    -- 可选:如果日期数量较多,先调整GROUP_CONCAT长度限制,避免内容截断
    SET SESSION group_concat_max_len = 102400;

    SELECT GROUP_CONCAT(
        DISTINCT CONCAT("MAX(IF(scadenza='", scadenza, "', importo, '')) AS '", scadenza, "'")
        SEPARATOR ','
    ) INTO @answers
    FROM ripartizione_rate;

    SET @query := CONCAT(
        'SELECT condomino, anagrafica, ', 
        @answers,
        ' FROM ripartizione_rate GROUP BY condomino, anagrafica'
    );
      
    PREPARE statement FROM @query;
    EXECUTE statement;
    DEALLOCATE PREPARE statement; -- 释放预处理语句,避免资源占用
END

内容的提问来源于stack exchange,提问作者pippo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:06:03