实际项目中遇到的问题之SQL根据某一字段值相同合并字符串
2008-04-02 16:25
369 查看
最近在做调查问卷系统,在最后做问卷调查统计报表时遇到了个问题。经过几个小时实践,尽于得到完美解决。现将方法记录下来与大家共享,希望大家以后在工作中遇到相同问题有个参考。看问题如下:
经过几个表的拼合汇总得到如下表(下面称做“原始表”):
想要的结果表如下:
我用的是自定义函数的方法(应该还有别的方法),自定义函数如下: /*
功能:合并处理函数
作者: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
经过几个表的拼合汇总得到如下表(下面称做“原始表”):
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
相关文章推荐
- 根据某一字段值相同合并字符串 - - SQL
- 根据某一字段值相同合并字符串 - - SQL
- 根据某一字段值相同合并字符串 - - SQL
- 根据某一字段值相同合并字符串 - - SQL
- 根据某一字段值相同合并字符串 - - SQL
- 根据某一字段值相同合并字符串
- sql语句在某一字段所有数据后面加上相同的字符串
- 根据某一字段值相同合并字符串
- sql语句——不同的表根据相同的字段值将两个表指定的字段合并为一个表
- 合并同列字段,即相同ID的字符串叠加
- sql中根据字段字符串的长度进行删除
- sql中怎样把同一张表中相同字段的内容合并为一条记录(不同字段的那一列每个记录后面加逗号)
- 对DataTable根据列名排序及GridView1的某一列相同的值只显示第一个(合并成一个)
- mysql通过sql语句如何批量去掉某一个表中某一个字段的下面的相同部分字符串
- 在论坛中出现的比较难的sql问题:26(动态行专列+合并字符串、补足行数)
- SQL 同一张表中相同字段的内容合并为一条记录(不同字段的那一列每个记录后面加逗号)
- EasyUi 动态tabs 在实际项目中遇到问题与解决方法
- 最近实际项目中遇到的技术问题与解决思路
- Java根据某一字段合并两个 Excel文件