Access 2007, обходной путь предложения OVER - отсутствует ошибка оператора
Мой запрос предназначен для добавления дополнительного поля с именем "WeightFactor" в конец таблицы. Мой код SQL ниже. Когда я пытаюсь запустить, я получаю сообщение об ошибке "отсутствует оператор". В предыдущих вопросах я вижу, что OVER() - синтаксически правильное утверждение. Поле "WeightFactor" должно составлять небольшой процент от 100%, так как я принимаю rowprice/totalprice. Когда я удаляю предложение OVER, ошибка исчезает, но в результате просто отображается 100% в каждой строке, а не правильный процент в 100% в каждой строке.
Меня предупредили, что OVER не поддерживается в Access, поэтому мне было интересно, если это правда, и если так, есть ли обходной путь, о котором кто-нибудь знает?
SELECT [2-C: Avg Prices by Customer Number Query].[Part Number],
[2-C: Avg Prices by Customer Number Query].[Customer Name],
[2-C: Avg Prices by Customer Number Query].[Customer Number],
[2-C: Avg Prices by Customer Number Query].SumOfQuantity,
[2-C: Avg Prices by Customer Number Query].TotalCost,
[2-C: Avg Prices by Customer Number Query].TotalPrice,
[2-C: Avg Prices by Customer Number Query].[Gross Margin],
[TotalPrice] / SUM([TotalPrice]) OVER() AS WeightFactor
FROM [2-C: Avg Prices by Customer Number Query]
1 ответ
Почему бы вам не создать второй запрос для расчета суммы всех элементов?
'TotalQuery
SELECT SUM([2-C: Avg Prices by Customer Number Query].TotalPrice) AS TotalPriceOver
FROM [2-C: Avg Prices by Customer Number Query];
Затем вы можете использовать это в своем исходном запросе:
'OriginalQuery
SELECT [2-C: Avg Prices by Customer Number Query].TotalPrice,
[TotalPrice]/[TotalPriceOver] AS WeightFactor
FROM [2-C: Avg Prices by Customer Number Query], TotalQuery;