新手来看:如何实现文字的sum?-小周
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


新手来看:如何实现文字的sum?

发表时间:2009/5/13 8:34:09 评论(1) 浏览(5622)  评论 | 加入收藏 | 复制
   
摘 要:如何实现文字的sum
正 文:

 

简述:
两行文字,存储在不同的记录中,如何用 SQL 来进行合并哪?本文叙述了上述问题的解决方法。
但是请注意,SQL 语句并不适用于本次情况。建议不要用本方法来实现文字的合并。


问题:
如何通过 sql解决下列问题?
dq(地区)  xm(姓名)
A         张三
A         李四
B         王五
B         王六
B         王七
C         王九

我想做一个视图转换成
dq           xm
A           张三,李四
B           王五,王六,王七
C           王九

回答:

第一,这根本是一个错误的问题,请记住SQL的应用范围
第二,给你一个能够实现该问题的傻方法(不推荐)

在ACCESS模块里写函数
基本程序如下
Public Function return_sl(dq As String) As String  'dQ为社区名称
    Dim sr As String  '声明一个整型变量
    Set db = CurrentDb() '指定数据库为当前数据库
    Set recname = db.OpenRecordset("select * from 表A where sqmc='" + dq + "'") '将对应地区“XM”表读入记录集
    Set strname = recname![mjxm] '指定记录集“姓名字段”

    Do Until recname.EOF
        sr = sr + " " + strname
        recname.MoveNext
    Loop

    return_sl = sr
    recname.Close
End Function
然后在Select语句直接调用
select dq,return_sl(dq) as xm from 表A GROUP BY DQ

就行了 

方法二

 相关方法在adp(sql server)中也行得通
create function getstr(@content int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(字符列) from 你的表 where  p_seq=@content
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go

--调用:
select p_seq,dbo.getstr(p_seq) f0002,count(*) num1  from 你的表 group by p_seq


Access软件网交流QQ群(群号:198465573)
 
 相关文章
[access查询]发一个在查询中利用Dsum计算累计值的示例,供...  【王樵民  2010/3/24】
【access入门】聚合函数的示例\聚合函数应用举例,Sum合计\...  【麥田  2012/3/25】
Excel高级筛选和sumif使用  【学习者  2012/7/3】
Access DSum()函数应用示例;Access指定条件的记录...  【风行  2012/9/8】
常见问答
技术分类
相关资源
文章搜索
关于作者

小周

文章分类

文章存档

友情链接