实际项目中遇到的问题之SQL根据某一字段值相同合并字符串

        最近在做调查问卷系统,在最后做问卷调查统计报表时遇到了个问题。经过几个小时实践,尽于得到完美解决。现将方法记录下来与大家共享,希望大家以后在工作中遇到相同问题有个参考。看问题如下:

经过几个表的拼合汇总得到如下表(下面称做“原始表”):

 lngQuestionIDstrCatalogTitle strQuestionTitle  Results
 1 分类一 问题一 不满意0份
 1 分类一 问题一 满意1份
 1 分类一 问题一 一般1份
 2 分类二 问题二 满意1份
 2 分类二 问题二 不满意1份

 想要的结果表如下:

 lngQuestionIDstrCatalogTitle  strQuestionTitle  AllResults 
 1 分类一 问题一 不满意0份,满意1份,一般1份
 2 分类二 问题二 不满意0份,满意1份

我用的是自定义函数的方法(应该还有别的方法),自定义函数如下: /*

功能:合并处理函数

作者:iawsky

时间:2008-03-27

使用:调查问卷高级汇总报表用

*/

ALTER FUNCTION [dbo].[fun_GetReults](@ReultColum varchar(10))

RETURNS varchar(500)

AS

BEGIN

DECLARE @ varcharReults varchar(500)

SET @varcharReults =''

SELECT @ varcharReults =@ varcharReults +','+CAST(Results as varchar)

FROM

    原始表

WHERE lngQuestionID=@ReultColum

RETURN(STUFF(@varcharReults,1,1,''))

END

调用方法:

SELECT lngQuestionID,strCatalogTitle,strQuestionTitle,AllResults=dbo. fun_ GetReults (lngQuestionID) FROM

    原始表

GROUP BY lngQuestionID,strCatalogTitle,strQuestionTitle

 得到的就是上面要的结果表.

 转载请注明出处:http://www.web2bar.cn/Article/2200.aspx

转载于:https://www.cnblogs.com/iawsky/archive/2008/04/02/1134786.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值