MS Access - как проверить, равно ли значение поля предыдущей записи? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть таблица в MS Access, которая содержит Store_code, Year, Month, Day и некоторые другие столбцы, отсортированные по соответствующему порядку столбцов, которые я упомянул.как это:

Store_code Year Month Day
65         2017  11   6
65         2017  11   6

Я сделал несколько других проверок для других столбцов, и теперь я хочу создать новый столбец с именем Day_Valid, где, если день подряд равен предыдущему, он становится равным 1, иначе он становится0

вот так:

Store_code Year Month Day Day_valid
65         2017  11   6    
65         2017  11   6    1
65         2017  11   7    0
65         2017  11   7    1

Заранее спасибо

1 Ответ

0 голосов
/ 22 октября 2018

Во-первых, нужен подзапрос, который извлекает значение из предыдущей записи.Для этого требуется поле уникального идентификатора - должен использоваться autonumber.http://allenbrowne.com/subquery-01.html#AnotherRecord

Если вы хотите это сравнение для каждого магазина / года / месяца, учтите:

SELECT *, (SELECT TOP 1 Dupe.Day FROM Table4 AS Dupe 
   WHERE Dupe.Store_code=Table4.Store_code AND Dupe.Year=Table4.Year 
   AND Dupe.Month=Table4.Month AND Dupe.ID<Table4.ID 
   ORDER BY Dupe.ID DESC) = [Day] AS Day_Valid 
FROM Table4;

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

Год и месяц являются зарезервированными словами - не следует использовать зарезервированные слова в качестве имен для чего-либо.

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