我有一个Access数据库,我有一个已定义的查询。
此查询有3个字段“类别”,“点”和“地方” 多条记录可以具有相同的类别条目。
我现在需要做的是按“类别”分组查询记录。 在每个子组中按“点”排序 从“1st”开始在子组中编辑“Place”,然后转到“2nd”,依此类推。 重复下一组,直到没有其他组。
如果我说目的是根据玩家得分的不同年龄组分配奖励(第一奖,第二名,第三名(等等)),也许会更容易。
我是一名.NET程序员,所以我立刻想到了LINQ,但这里没有linq; /
除了执行单独的sql请求然后按Points排序之外,还有其他更好的方法吗?
好的,所以这里是我的记录集(Place列已经填充,最初是空的,这就是它应该填充的方式):
ID CATEGORY POINTS PLACE
----------------------------------
1 CAT1 8 2
1 CAT1 10 1
1 CAT2 12 2
1 CAT2 11 3
1 CAT2 13 1
1 CAT3 12 1
1 CAT3 9 3
1 CAT3 3 4
1 CAT3 10 2
我不知道前面有多少类别。
答案 0 :(得分:0)
不确定单独的SQL请求是什么意思。在VBA中,您可以使用单个SQL请求用您的数据填充临时表(加上一个空的" PLACE"列),然后使用基于类似查询的记录集(就像您的但是针对临时表)使用" ORDER BY Category,Points DESC"添加)。然后遍历该记录集并分配分数(使用recordset.edit& .update等)。 (但如果你是.Net程序员,我可能不会告诉你任何你不知道的事情......)
答案 1 :(得分:0)
在彻底阅读文档之后,我发现我必须手动进行大量的排序和分组,所以我最终认为它不值得,并转而编写一个在这个数据库上运行的桌面C#应用程序。从那里一切都很明显,而且速度更快