Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

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

时 间:2009-05-13 08:34:09
作 者:UMVSoft整理   ID:1445  城市:上海
摘 要:如何实现文字的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交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助