一个简单的问题,我的数据库中有一个组合框,我希望我最常选择的项目在下次添加记录时首先出现。
答案 0 :(得分:0)
我建议在表中添加一个Long Integer字段,以构成组合框的行源,并在组合框的AfterUpdate
事件上或按照执行的主要操作来增加该字段的值根据您的表格。
然后,按此新字段的降序对组合框中的项目进行排序。
答案 1 :(得分:0)
我假设您的组合框选择了一个保存在表(MainTable)中的属性(PropertyID)的查找值。
您可以获取选择此属性的次数
SELECT PropertyID, COUNT(*) AS SelectedTimes
FROM MainTable
GROUP BY PropertyID
现在通过将此查询用作子查询来获取排序后的查找表:
SELECT L.PropertyID, L.Name
FROM
LookupTable L
( SELECT PropertyID, COUNT(*) AS SelectedTimes
FROM MainTable
GROUP BY PropertyID) X
ON L.PropertyID = X.PropertyID
ORDER BY X.SelectedTimes DESC, L.Name
如果两个条目的计数相同,我也会按名称排序。
答案 2 :(得分:0)
由于使用情况可能会随时间而变化,因此您应记录时间(选择一个项目)。然后,您可以对使用情况进行加权,以便某项的最近使用情况比一年前使用的那些项具有更高的权重。
然后,您可以运行查询以在顶部列出使用最近的项目的用法:
Select Item, Sum(1 / DateDiff("h", [SelectedTime], Now())) As Usage
From ItemUsage
Group By Item
Order By Sum(1 / DateDiff("h", [SelectedTime], Now())) Desc
当然,这种线性加权可能太简单了。您可以将任何数学应用于平方或对数等用法。