mybatis遇到的问题

目前有两张表,想要将表中前一天的数据的yield字段,根据machineID-programCode分组,计算求和作为表二的yield存储。(根据多字段分组 + 求和)

表一:
在这里插入图片描述

表二:
在这里插入图片描述

正确sql如下:

 		insert into CNC_YieldNum (machineID, programCode, yieldNum,endTime)
        SELECT machineID, programCode, SUM(yield) AS yieldNum, DATE_FORMAT(endTime, '%Y-%m-%d 00:00:00') AS t
        FROM CNC_Production
        WHERE EndTime >= #{昨天0点}
          AND EndTime < #{今天0点}
        GROUP BY machineID, programCode, t
        ORDER BY machineID, programCode;

利用mybatis简单实现
遇到的坑1
原语句(错误)

insert into CNC_YieldNum (machineID, programCode, yieldNum,endTime)
        SELECT machineID, programCode, SUM(yield) AS yieldNum , endTime
        FROM CNC_Production
        WHERE EndTime >= #{昨天0点}
          AND EndTime < #{今天0点}
        GROUP BY machineID, programCode
        ORDER BY machineID, programCode;

分组machineID, programCode 相同可以分组 ,但其endTime为不同 ,使用group by在sqlYog 执行没有错误,但是当将其写入mybatis 映射的xml文件中,运行时没有结果。所以须将endTime格式化为统一形式才行。而需求是昨日数据,保存年月日即可。

遇到的坑2
mybatis 执行插入语句失败。
忘记commit语句,没有插入结果。
sqlSession.commit();

发布了63 篇原创文章 · 获赞 3 · 访问量 1438

猜你喜欢

转载自blog.csdn.net/weixin_41772761/article/details/103182471
今日推荐