Как отсортировать поле со списком по часто используемым? - PullRequest
0 голосов
/ 12 апреля 2019

Итак, простой вопрос, у меня есть поле со списком в моей базе данных, и я хочу, чтобы элементы, которые я выбрал наиболее часто, появлялись первыми при следующем добавлении записи.

Ответы [ 3 ]

0 голосов
/ 12 апреля 2019

Я предполагаю, что ваше поле со списком выбирает значение поиска для свойства (PropertyID), которое сохраняется в таблице (MainTable).

Вы можете узнать, сколько раз это свойство было выбрано с помощью

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

Я также сортирую по имени, если две записи имеют одинаковое количество.

0 голосов
/ 12 апреля 2019

Поскольку использование может меняться со временем, вы должны записать время , когда был выбран элемент.Затем вы можете взвесить использование, поэтому недавнее использование элемента будет иметь больший вес, чем те, которые использовались, скажем, год назад.

Затем вы можете выполнить запрос, чтобы получить список использования с последними использованными элементами вtop:

Select Item, Sum(1 / DateDiff("h", [SelectedTime], Now())) As Usage
From ItemUsage
Group By Item
Order By Sum(1 / DateDiff("h", [SelectedTime], Now())) Desc

Конечно, это линейное взвешивание может быть слишком простым.Вы можете применить любую математику к использованию, как квадрат или бревно.

0 голосов
/ 12 апреля 2019

Я бы предложил добавить поле Long Integer в таблицу, состоящую из источника строки для вашего поля со списком, и увеличить значение, содержащееся в этом поле, либо в событии AfterUpdate поля со списком, либо после выполнения основной операции, выполняемой вашим полем.form.

Затем отсортируйте элементы в выпадающем списке по этому новому полю в порядке убывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...