ACCESS数据库 SQL汇总问题
有表如下: 一级 二级 易做图 A B 我 A C 你 A B 他 想用SQL得到结果如下: A,B 我,他 A,C 你 也就是按照一级和二级汇总后,把易做图内容合在一起。
有表如下: 一级 二级 易做图 A B 我 A C 你 A B 他 想用SQL得到结果如下: A,B 我,他 A,C 你 也就是按照一级和二级汇总后,把易做图内容合在一起。
答案:按你的表格框架编写了如下代码,测试可以实现。
Private Sub Command0_Click()
'原表名称“表1”,查询结果生成表名称“表2”
'遇到错误执行下一句代码
On Error Resume Next
'定义变量
Dim dbs As Database
Dim rsy As Recordset
Dim rsx As Recordset
Dim sj As String
Set dbs = CurrentDb '当前数据库
'如果表2存在则删除
If DCount("[Name]", "MSysObjects", "[Name]='表2'") = 1 Then DoCmd.DeleteObject acTable, "表2"
'建立汇总表2
dbs.Execute "SELECT 表1.一级, 表1.二级, Null AS 易做图 INTO 表2 FROM 表1 GROUP BY 表1.一级, 表1.二级;"
'打开表2记录集
Set rsx = dbs.OpenRecordset("select * from [表2]")
'读取表2记录集
With rsx
'如果有记录,遍历表2
If Not (.EOF And .BOF) Then
'首项记录
.MoveFirst
While Not .EOF
sj = ""
'查询表1中与表2当前记录相符的记录集
Set rsy = dbs.OpenRecordset("select * from [表1] WHERE 一级='" & rsx(0) & "' and 二级='" & rsx(1) & "'")
With rsy
.MoveFirst
While Not .EOF
If sj = "" Then
sj = rsy(2)
Else
sj = sj & "," & rsy(2)
End If
.MoveNext
Wend
End With
'向表1的易做图字段追加数据
dbs.Execute "UPDATE 表2 SET 易做图 = '" & sj & "' WHERE 一级='" & rsx(0) & "' and 二级='" & rsx(1) & "'"
'下一记录
.MoveNext
Wend
End If
End With
End Sub
其他:可以写一个函数,对这种数据处理一下,然后得出结果。 可以写一个函数,对这种数据处理一下,然后得出结果。 写一个sql语句,对这种数据处理一下,然后得出结果
上一个:求与win7相兼容的免费access2003安装包
下一个:谁有access 2003安装软件? 完全破解版 ,一定要能下载能安装能使用的,请发到yanglei11970@qq.com