0
点赞
收藏
分享

微信扫一扫

明细表1字符串拼接合并插入到明细表2SQL输出过程记录

需求描述:

明细表1:formtable_main_46_dt1

字段:id,mainid, bxmx1, jshj, kmbm, fyxm

明细表4:formtable_main_46_dt4

字段:id,mainid,zy,kmbm,jdbmbm,fyxmbm,yfxmbm,jfje

  1. fyxm 为福利费(56)的数据。
  2. bxmx1 拼接,”/”间隔(mysql 结果集行拼接group_concat)。
  3. jshj 取合计(sum)。
  4. 插入到明细表4.
  5. 同主表,所以mainid相同。

输出过程:


  1. 查看明细表1数据。
  2. select mainid, bxmx1, jshj, kmbm, fyxm from formtable_main_46_dt1;
  3. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_mysql
  4. 找一个demo数据,mainid=62,以及过滤符合条件的数据,fyxm=56
  5. select mainid, bxmx1, jshj, kmbm, fyxm from formtable_main_46_dt1 where mainid=62 and fyxm =56
  6. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_字段_02
  7. 尝试字符串合并group_concat
  8. select group_concat(bxmx1) from formtable_main_46_dt1 where mainid=62 and fyxm =56
  9. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_结果集行拼接_03
  10. 逗号替换为‘/’
  11. select REPLACE(group_concat(bxmx1),',','/') as zy from formtable_main_46_dt1 where mainid=62 and fyxm =56
  12. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_字段_04
  13. 金额求和
  14. select REPLACE(group_concat(bxmx1),',','/') as zy ,sum(jshj) as jfje from formtable_main_46_dt1 where mainid=62 and fyxm =56
  15. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_数据_05
  16. 添加其它字段
  17. select mainid,REPLACE(group_concat(bxmx1),',','/') as zy ,kmbm,sum(jshj) as jfje from formtable_main_46_dt1 where mainid=62 and fyxm =56
  18. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_字符串拼接_06
  19. 提高兼容性,加group by
  20. select mainid,REPLACE(group_concat(bxmx1),',','/') as zy ,kmbm,sum(jshj) as jfje from formtable_main_46_dt1 where mainid=62 and fyxm =56 group by fyxm
  21. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_字段_07
  22. 改为insert into 语句前补全字段
  23. select mainid,REPLACE(group_concat(bxmx1),',','/') as zy,kmbm,null as jdbmbm,null as fyxmbm,null as yfxmbm,sum(jshj) as jfje from formtable_main_46_dt1 where mainid=62 and fyxm =56 group by fyxm;
  24. 明细表1字符串拼接合并插入到明细表2SQL输出过程记录_字符串拼接_08
  25. 改为insert into 语句(测试需谨慎)
  26. INSERT INTO formtable_main_46_dt4 ( mainid,zy,kmbm,jdbmbm,fyxmbm,yfxmbm,jfje) select mainid,REPLACE(group_concat(bxmx1),',','/') as zy,kmbm,null as jdbmbm,null as fyxmbm,null as yfxmbm,sum(jshj) as jfje from formtable_main_46_dt1 where mainid=62 and fyxm =56 group by fyxm;



举报

相关推荐

0 条评论