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

Posted 孙忠的分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了明细表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输出过程记录_字段
  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输出过程记录_mysql_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;



以上是关于明细表1字符串拼接合并插入到明细表2SQL输出过程记录的主要内容,如果未能解决你的问题,请参考以下文章

Sql 动态行转列 pivot

delphi如何将明细表中的数据保存到数据库中

AJAX请求时status返回状态明细表

第一次作业得分前十的同学得分明细

用户标签数据在ClickHouse的存储与使用

2.案例分析