vlsx |
---|
Формула вычисления не принципиальна ... |
Да не скажите. Уверен, что в большинстве случаев можно получить результат, минуя перекрестные запросы. Например, если верно предположение
ПЕНСИОНЕРКА и ваш пример является репрезентативным, то требуемый результат можно получить так
SELECT Q1.E1, 'B' & Count(*) AS B,
Exp(Sum(Log(Abs(IIf(Nz(Q2.X,0)=0,1,Q2.X)))))*
IIf(Sum(IIf(Nz(Q2.X,0)<0,1,0)) Mod 2=0,1,-1)*
IIf(Sum(IIf(Nz(Q2.X,0)=0,1,0))>0,0,1)*Nz(First(Q1.X),0) AS X1
FROM Q AS Q1 INNER JOIN Q AS Q2 ON (Q1.E1=Q2.E1) AND (Q1.A2 > Q2.A2)
GROUP BY Q1.E1, Q1.A2
здесь Q-сохраненный запрос
SELECT E1, A2, Sum(X1) AS X
FROM [А2/01/1/02]
GROUP BY E1, A2
В первом запросе использованы сведения из поста
3528720 BoNiMvlsx |
---|
И как эти функции работают в связи с данной задачей? На сколько я знаю это операторы объединения таблиц или запросов со сходной структурой. |
SELECT E1, 'B1' As B, B1 As X1 FROM [А2/01/1/04]
UNION ALL
SELECT E1, 'B2', B2 FROM [А2/01/1/04]
UNION ALL
SELECT E1, 'B3', B3 FROM [А2/01/1/04]
....