设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1025|回复: 7
打印 上一主题 下一主题

[查询] 求一个SQL语句

[复制链接]
跳转到指定楼层
1#
发表于 2009-9-29 17:04:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一个SQL语句

比如我有一个表,两个字段
字段1  字段2
10      A
10      B
10      C
20      A
20      D
30      B

能不能写一个SQL,得到下面的结果
字段1  字段2
10      ABC
20      AD
30      B

就是说,把字段1相同的记录中的字段2合并
先谢谢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-9-29 17:46:11 | 只看该作者
这个恐怕要用VBA吧, SQL貌似无法实现
3#
发表于 2009-9-29 19:27:37 | 只看该作者
通过三个查询:第一个查询生成根据字段1的分类序号类似B: SELECT A.字段1, A.字段2, "列" & DCount("[字段2]","A","[字段1]='" & [字段1] & "'and [字段2]<='" & [字段2] & "'") AS 列
FROM A;

第二个用交叉表查询C: TRANSFORM Last(B.字段2) AS 字段2之最后一条记录
SELECT B.字段1
FROM B
GROUP BY B.字段1
PIVOT B.列;

第三个将交叉表查询合并:SELECT C.字段1, [列1] & [列2] & [列3] AS 字段2
FROM C;
4#
发表于 2009-9-29 20:22:07 | 只看该作者
附件是一个在查询中调用函数来实现的方法

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2009-9-29 21:04:01 | 只看该作者
有这样的函数,我来学习一下,谢谢分享.
6#
发表于 2009-9-30 08:44:32 | 只看该作者
Function Mystr(myval) As String
Dim rs As New ADODB.Recordset
Dim ssql As String
ssql = "select * from 表1 where 字段1=" & myval
rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Mystr = ""
For i = 1 To rs.RecordCount
    Mystr = Mystr & rs("字段2")
    rs.MoveNext
Next
rs.Close
End Function


SELECT 表1.字段1, Mystr([字段1]) AS 字段2
FROM 表1
GROUP BY 表1.字段1;
7#
 楼主| 发表于 2009-9-30 09:38:12 | 只看该作者
想了一晚上,觉得没希望,打算用GetString一个个地取值,没想到高手们还真是会者不难。
todaynew和koutx差不多,todaynew的更简单一点点。不过我还想试试用GetString能不能更简单。
版主的答复应该是最对题的,可是我试到第二步就不行了,对不起版主了。不过还是大概猜到了一点版主的想法。

顺便问一下,有没有什么资料能学习一下,提高一下查询或者SQL得水平的。

多谢各位指教。
8#
发表于 2009-11-24 19:58:32 | 只看该作者
顶一个先!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-29 11:06 , Processed in 0.105312 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表