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

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

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

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

 想要的结果表如下:

 lngQuestionID strCatalogTitle   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

posted on 2008-04-02 16:25  爱问天  阅读(494)  评论(0编辑  收藏  举报