SELECT Sum(Equityes.Amount) AS SumOfAmount, Sum(Equityes.Commission) AS SumOfCommission, First(Equityes.ValueDate) AS FirstOfValueDate, Equityes.Amount, Equityes.Price, ([Equityes]![Amount]*[Equityes]![Price])/[SumOfAmount] AS AveragePrice
FROM Equityes
GROUP BY Equityes.Amount, Equityes.Price
HAVING (((First(Equityes.ValueDate))<#8/28/2014#));
in forma visualizzazione si vede:
SumOfAmount SumOfCommission FirstOfValueDate Amount Price AveragePrice
14050 € 170,61 13/08/2014 14.050,00 € 4,00 4
20600 € 248,75 14/08/2014 20.600,00 € 3,00 3
L'idea è che faccia (14050*4+20600*3)/(14050+20600) e naturalmente dovrebbe essere lo stesso per tutti i record.
Il problema mi sembra sia che non fa un corretto raggruppamento: l'unico vincolo che gli ho imposto è che i titoli siano in antecedenti ad una certa data. E questo è sicuramente verificato. Ho provato a nascondere sia Amount che Price, ma il risultato non cambia. Cambia solo se cancello drasticamente i campi Amount e Price ma a quel punto devo cancellare anche AveragePrice, che ha bisogno di questi singoli campi.
Scusami se non mi spiego bene...