Таблица выглядит так:
part value
BAC 102
BS1 275
MAV 425
BAC 519
BSF 653
BAC 1072
Результат будет:
По части БАК
part value difference
BAC 102 102
BAC 519 417
BAC 1072 553
Нет никаких отношений, кроме значения в порядке.
Был использован следующий оператор SQL, но результат бесполезен, потому что результат не фильтруется по частям, как спрашивает «ГДЕ», а первая строка должна иметь значение разницы 102, но она пуста.
SELECT ABS(T2.value - T1.value) AS Difference, T1.Part,T1.value,
FROM table AS T1 RIGHT JOIN table AS T2 ON
T2.report = T1.Report+ 1
WHERE (((T1.part)=[Forms]![Parts]![Part]));
ОБНОВИТЬ:
Я добавил в функцию @Tom Collins
Function GetDiff(CurrPart As String, CurrValue As Long) As Long
Static LastPart As String
Static LastValue As Long
If CurrPart <> LastPart Then
LastValue = 0
LastPart = CurrPart
End If
If LastValue = CurrValue Then
GetDiff = CurrValue
Else
GetDiff = CurrValue - LastValue
LastValue = CurrValue
End If
End Function
Выводы:
Выходит, что функция работает нормально, но происходит странная вещь, когда результаты помещаются в отчет, первое значение запроса получается неверным, а при клике - правильным. Еще одна странная вещь: если я хочу, чтобы среднее значение для поля отображалось с неправильным значением, оно отображает правильное среднее значение, и если я нажимаю на неправильное значение, которое становится правильным, среднее значение остается прежним. На вопрос был дан ответ, и оставшаяся проблема - это другой вопрос. Спасибо @ Том Коллинз.