回 帖 发 新 帖 刷新版面

主题:[讨论]access数据库多表查询的问题

一个数据库里有表A 和 表B,现在希望查询出表A的部份字段(一条记录即可),表B里的某字段A的第一条和最后一条,某字段B的最大值,某字段C的总和。查询结果返回为一个新的表recordset
.
表A的字段如下
A1    A2    A3
张三  20    abc
李四  21    def
王二  23    ghi

表B的字段如下:
id  B1    B2    B3
1   15    45    60
2   18    48    62
3   13    59    75
4   89    56    82

表A与表B没有相关联的字段。表B中的ID字段可排序(order by ),反映了表B里各行记录的先后顺序.

如果希望返回结果集的字段结构为:表A中张三的记录的所有字段,表B中B1的第一行(firstB1,表B中B1的最后一行(lastB1),表B中B2的最大值(maxB2),表B中B3的总和(sumB3).

我是这么写的:
select A1,A2,A3,(select top 1 B1 from B) as firstB1,(select top 1 B1 from B order by id desc) as lastB1,(select max(B2) from B ) as maxB2,(select sum(B3) from B) as sumB3  from A where A1='张三'

虽然可以按要求完成,但感觉其中包含了多次查询操作,怕影响运行效率。各位有什么更好的办法?

回复列表 (共3个回复)

沙发

又没人理?

板凳

果然没人理?

3 楼

没办法,期待高人。

我来回复

您尚未登录,请登录后再回复。点此登录或注册