Я искал и этот сайт, и Google в целом, пытаясь найти решение моей проблемы, но все, что я, похоже, встречаю, это ошибки в моем запросе.MS Access - Delta (change over x) Между текущей и предыдущей строкой
У меня есть таблица под названием «Обзор с полями» Отверстие, глубина, Az, Dip.
Hole Depth Az Dip
---------------------------
AB1 0 170 -77
AB1 150 166 -76.5
AB1 200 160 -75
AD1 0 350 -88
AD1 65 344 -87.6
AD1 89 340 -85.4
AB2 0 152 -66
AB2 135 150 -63.2
Мне нужен запрос, который будет найти изменение аза по глубине (между двумя рядами) и изменение падения по глубине (между двумя рядами), но только для отверстий, которые начинаются с «AB». Таким образом, окончательный результат должен выглядеть примерно так (с одним значением вместо формулы):
Hole Depth DeltaAz DeltaDip
-------------------------------------------
AB1 150 (170-166)/150 (-77--76.5)/150
AB1 200 (166-160)/50 (-76.5--75)/50
AB2 135 (152-150)/135 (-66--63.2)/135
Я пробовал кучу разных возможных запросов, которые я нашел здесь, но ничего не действительно работал. Самое близкое, что я получил, - это простой код ниже, который я использовал для проверки первого шага (получение разницы между двумя строками). Однако, когда он запустится, я увижу результаты и сообщение об ошибке Only one record can be returned by this subquery
. Когда я щелкнул по ошибке, все мои результаты исчезли.
SELECT Hole, Depth, [Az] - (
SELECT TOP 1 Az
FROM Survey AS S
WHERE Survey.Hole = S.Hole AND S.Az < Survey.Az
ORDER BY S.Az DESC
) AS Diff
FROM Survey
WHERE (
SELECT TOP 1 Az
FROM Survey AS S
WHERE Survey.Hole = S.Hole AND S.Az < Survey.Az
)
IS NOT NULL AND Hole LIKE 'AB*'
ORDER BY Survey.Hole, Depth, Survey.Az
;
У кого-нибудь есть решение, чтобы помочь мне? Я использую MS Access 2013.
Есть всегда 3 записи в отверстие, или это переменная величина? – Aron
Это переменная сумма. Это больше похоже на 20-30 записей за отверстие. –