请问一下sql拼接问题

image.pngselect * from table_month  以此为例, 这样查出所有数据的月份,如何将这个字段下的相同类别下的月份拼接起来? 像圈起来的这三个 拼成 2021-03,04,05  这种?

用户4YanT1322901 发布于 2021-6-9 16:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户4YanT1322901Lv1见习互助
发布于2021-6-10 09:37

SELECT B.project_zt_code,B.project_gs_name,B.yfgs_name,LEFT(StuList,LEN(StuList)-1) as bs_mon FROM (

SELECT project_zt_code,project_gs_name,yfgs_name,

CONVERT(VARCHAR(4),GETDATE(),120) + '-' + REPLACE((SELECT bs_month+',' FROM DM_YY_design_serve_income_fill b

  WHERE b.project_zt_code=A.project_zt_code AND b.project_gs_name=A.project_gs_name and b.yfgs_name = a.yfgs_name

  FOR XML PATH('')),

CONVERT(VARCHAR(4),GETDATE(),120)+'-','') AS StuList

FROM DM_YY_design_serve_income_fill A 

GROUP BY  a.project_zt_code,a.project_gs_name,a.yfgs_name

) B 

最佳回答
0
luojian0323Lv7资深互助
发布于2021-6-9 16:11

格式不统一。做不到啊

  • 用户4YanT1322901 用户4YanT1322901(提问者) 2021-03,2021-04,2021-05 这种呢?
    2021-06-09 16:13 
  • luojian0323 luojian0323 回复 用户4YanT1322901(提问者) 这个可以啊。你查询出来在单元格中不扩展,就显示成这样。
    2021-06-09 16:15 
  • luojian0323 luojian0323 回复 用户4YanT1322901(提问者) 但你这三个日期是什么分组,我就不知道了。需要其他字段做判断
    2021-06-09 16:15 
  • 用户K5472706 用户K5472706 回复 luojian0323 什么字段呢
    2021-07-06 10:19 
最佳回答
0
liu.yangLv2初级互助
发布于2021-6-9 16:15

你这是什么数据库?你是想要按照相同得年份 拼接月份是吗

  • 用户4YanT1322901 用户4YanT1322901(提问者) SQLserver 没错
    2021-06-09 16:17 
  • liu.yang liu.yang 回复 用户4YanT1322901(提问者) 试下这段SQL SELECT substr(a.bs_month,1,5)+( SELECT substr(b.bs_month,6,2)+\',\' FROM 表名 b WHERE substr(b.bs_month,1,4)=substr(a.bs_month,1,4) FOR XML PATH(\'\')) AS 新字段 FROM 表名 a group by substr(a.bs_month,1,4)
    2021-06-09 16:30 
  • liu.yang liu.yang 回复 用户4YanT1322901(提问者) 高版本 可以用这段 SELECT FieldA , STRING_AGG(FieldB, \',\') WITHIN GROUP (ORDER BY FieldB) AS FieldBs FROM TableName GROUP BY FieldA ORDER BY FieldA;
    2021-06-09 16:38 
  • liu.yang liu.yang 回复 用户4YanT1322901(提问者) 记得把SQL中得 转义字符 \\ 去掉 这个问答网页自动带出来得
    2021-06-09 16:42 
  • 用户4YanT1322901 用户4YanT1322901(提问者) 回复 liu.yang [Err] 42000 - [SQL Server]选择列表中的列 \'DM_YY_design_serve_income_fill.bs_month\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 我把b表的加入到group by中 又提示这 [Err] 42000 - [SQL Server]无法绑定由多个部分组成的标识符 \"b.bs_month\"。
    2021-06-09 16:57 
最佳回答
0
用户K5472706Lv2见习互助
发布于2021-6-9 16:16

thyghjk

  • 2关注人数
  • 493浏览人数
  • 最后回答于:2021-6-10 09:37
    请选择关闭问题的原因
    确定 取消
    返回顶部