Wie heeft een idee wat hier mis gaat?
Ik heb een tabel met bedragen in diverse valuta die ik wil omrekenen naar Euro's. De dagkoers staat in een simpele tabel Dagkoers met de velden Datum, Valuta en Koers. Er is niet voor alle tussenliggende dagen een koers beschikbaar, dus voor elke datum moet gezocht worden naar een record met hoogste datum die niet na de gezochte datum ligt.
Wanneer ik dit opvraag met de subquery in de SELECT gaat het prima:
Maar als ik het veld BedragEUR wil updaten gaat het mis:
'Operation must use an updateable query'.
Daarnaast vraag ik me sowieso af wat hiervoor de meest efficiënte methode zou zijn, het gaat om plm. 64000 records dus een beetje performanceverschil kan al snel tijd schelen...
Iemand enig idee wat de oplossing is?
Alvast bedankt!
Ik heb een tabel met bedragen in diverse valuta die ik wil omrekenen naar Euro's. De dagkoers staat in een simpele tabel Dagkoers met de velden Datum, Valuta en Koers. Er is niet voor alle tussenliggende dagen een koers beschikbaar, dus voor elke datum moet gezocht worden naar een record met hoogste datum die niet na de gezochte datum ligt.
Wanneer ik dit opvraag met de subquery in de SELECT gaat het prima:
Code:
SELECT Openstaand.Bedrag, Openstaand.Valuta, Openstaand.Datum, [Bedrag]/(SELECT TOP 1 DagKoers.Koers FROM DagKoers WHERE DagKoers.Datum<=Openstaand.Datum AND DagKoers.Valuta=Openstaand.Valuta ORDER BY Dagkoers.Datum DESC) AS EUROS
FROM Openstaand;
Maar als ik het veld BedragEUR wil updaten gaat het mis:
Code:
UPDATE Openstaand SET Openstaand.BedragEUR = [Bedrag]/(SELECT TOP 1 DagKoers.Koers FROM DagKoers WHERE DagKoers.Datum<=Openstaand.Datum AND DagKoers.Valuta=Openstaand.Valuta ORDER BY Dagkoers.Datum DESC);
'Operation must use an updateable query'.
Daarnaast vraag ik me sowieso af wat hiervoor de meest efficiënte methode zou zijn, het gaat om plm. 64000 records dus een beetje performanceverschil kan al snel tijd schelen...
Iemand enig idee wat de oplossing is?
Alvast bedankt!