Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Access.
Предмет: Информационные технологии
Раздел: Базы данных, язык запросов SQL в Microsoft Access (перекрёстные запросы)
На скриншоте показано сообщение об ошибке Microsoft Access:
"[Заказы]![Скидка_за_просрочку, %]" не распознается ядром СУБД Microsoft Access как допустимое имя поля или выражение.
Это означает, что Access не может интерпретировать имя поля [Скидка_за_просрочку, %] в таблице [Заказы] как корректное, из-за использования запятой и знака процента в имени поля.
В Microsoft Access имена полей не должны содержать символов, которые могут быть интерпретированы как операторы или спецсимволы (например, запятая, процент, точка с запятой и др.).
Поле [Скидка_за_просрочку, %] содержит запятую и %, что делает его недопустимым для прямого использования в SQL-запросе.
Есть два возможных пути решения:
Наиболее надёжный способ — переименовать поле в таблице [Заказы], чтобы оно не содержало спецсимволов. Например:
Было:
[Скидка_за_просрочку, %]
Стало:
[Скидка_за_просрочку]
или
[Скидка_просрочка_процент]
После этого исправьте запрос, чтобы использовать новое имя поля.
[]
и AS
для псевдонима (менее надёжный)Иногда можно попробовать использовать псевдоним поля через AS
, например:
SELECT [Заказы].[Скидка_за_просрочку, %] AS [Скидка]
Но в случае с перекрёстным запросом (Crosstab Query) Access может всё равно не распознать поле с недопустимыми символами.
Если вы переименовали поле в [Скидка_за_просрочку], то запрос может выглядеть так:
TRANSFORM Sum([Исходные данные].[Количество]*[1-Заказы].[Скидка_за_просрочку]*[Сумма к оплате])
SELECT [Исходные данные].[Название_товара]
FROM [Исходные данные]
INNER JOIN [1-Заказы] ON [Исходные данные].[ID_товара] = [1-Заказы].[ID_товара]
GROUP BY [Исходные данные].[Название_товара]
PIVOT Format([Дата_время_доставки_фактическая], "mmm") & "-" & Year([Дата_время_доставки_фактическая]);
Если нужно — помогу адаптировать запрос под вашу структуру данных.