在access数据库中,如何建立查询所有用户的最近10个记录

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:51:49
数据库中有“用户”、“交货日期”、“交货数量”等字段,需要在一个查询中显示所有的用户最近10次交货记录(按“用户”排序),不知怎样建立这个查询?
恳请高手指点!
感谢各位的帮助!按照各位的方法,查询的记录(总)数是10个。但我希望查询的是:当只有一个用户时,查询这个用户最近10次记录;当有两个用户时,查询这两个用户最近的各10次记录(每个用户10次记录,总的记录数应是20次);当有3个用户时,查询每个用户的各10次记录(总记录数30次),以此类推。因为我们的用户有100多个,如果每次只能查一个用户的最近10次记录,很费时。因此希望一次能查找所有用户最近交货的10次记录。谢谢!

要使用交叉查询
首先你表要增加一个字段,叫“购买序数”,就是购买第一次是1,第二次是2,...
TRANSFORM last(表.交货数量)
SELECT 表.用户
FROM 表
where 表.购买序数<=10
GROUP 表.用户
PIVOT 表.购买序数;
这个查询是:
1:查处所有购买序数在10以内的所有记录(这10次当然是最近的三次),
2:把查出的记录按照用户分组
3:将够买序数作为列标题,求出每个用户在各自10次内的各自购买数量
例如:查询结果
用户 1次, 2 次,3次, 4次, 5次, 6 次,7次, 8 次,9 次,10 次

张 11 , 0, 12, 23 , 24 , 5 , 67 , 88 ,91, 5
李 4 , 5 , 1 , 8 , 6, 10 , 23, 0, 0 , 0

结果的意思是张用户在最近10次购买记录内第一次购买了11个,第二次购买了0个,第三次购买了12个......
李用户在10次内第一次购买了4个.....
我给你弄了半天,也只能做到查出你表内所有用户最近10次购买记录的“购买数量”
不能够查出购买记录的所有字段,想必我的查询是最符合你的意思的了
如果你非要查出所有字段,我建议你用编程序的方法,设置数组来做,如果光靠查询,估计够呛

给分吧,哈哈。。。。。。。。。。

SELECT TOP 10 * FROM 表 Order By 用户,交货日期 DESC

如果使用TOP的话
结果必须是用时间降序排序的。
就是select top 10 * from 表名 order by 交货日期 DESC
因为它是限制查询结果集返回的行数,所以必须按时间降序才能得到最近的10个记录

select top 10 from 表名 where 用户