Вот пример данных для таблицы aw . Основываясь на вашем описании, я думаю, что вы хотите отбросить строки с ID
значениями 2, 3 и 5.
ID symbol direction range price percent
1 a x 15 10 5
2 a x 20 10 5
3 b y 40 50 5
4 b y 10 50 5
5 a x 15 10 5
Определение минимального значения диапазона для каждой комбинации symbol
, direction
, price
и percent
.
qryMinRanges
SELECT
aw.symbol,
aw.direction,
aw.price,
aw.[percent],
Min(aw.range) AS MinOfrange
FROM aw
GROUP BY
aw.symbol,
aw.direction,
aw.price,
aw.[percent];
... который дает этот набор результатов:
symbol direction price percent MinOfrange
a x 10 5 15
b y 50 5 10
Определите минимум ID
для каждого из этих минимальных диапазонов.
qryMinID_forMinRanges
SELECT
q.symbol,
q.direction,
q.price,
q.[percent],
q.MinOfrange,
Min(aw.ID) AS MinOfID
FROM
qryMinRanges AS q
INNER JOIN aw
ON
(q.MinOfrange = aw.range)
AND (q.[percent] = aw.[percent])
AND (q.price = aw.price)
AND (q.direction = aw.direction)
AND (q.symbol = aw.symbol)
GROUP BY
q.symbol,
q.direction,
q.price,
q.[percent],
q.MinOfrange;
... который дает этот набор результатов:
symbol direction price percent MinOfrange MinOfID
a x 10 5 15 1
b y 50 5 10 4
Так qryMinID_forMinRanges должно представлять строки, которые вы хотите сохранить. В конечном итоге вы удалите строки из aw , значения идентификаторов которых не включены в qryMinID_forMinRanges . Но сначала попробуйте этот запрос SELECT
, чтобы убедиться, что вы указали правильные записи для удаления.
SELECT
aw.ID,
aw.symbol,
aw.direction,
aw.range,
aw.price,
aw.[percent]
FROM aw
WHERE aw.ID Not In
(SELECT MinOfID FROM qryMinID_forMinRanges);
... который дает мне этот набор результатов:
ID symbol direction range price percent
2 a x 20 10 5
3 b y 40 50 5
5 a x 15 10 5
Итак, если это выглядит правильно, измените его на запрос УДАЛИТЬ.
DELETE *
FROM aw
WHERE
(((aw.ID) Not In
(SELECT MinOfID FROM qryMinID_forMinRanges)));
ДБ не требует *
после УДАЛЕНИЯ. Но если вы хотите использовать предварительный просмотр конструктора запросов, вам необходимо указать для него поле спецификации.
Пожалуйста, примите меры предосторожности для защиты ваших данных на случай, если я напортачу здесь какие-либо подробности Резервные копии хороши. : -)