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;
Другие вопросы по тегам