Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Напишите запрос с вычислениями в предложении WHERE
В предоставленной ошибке очевидно, что в SQL-запросе допущена синтаксическая ошибка. Рассмотрим ваш запрос:
SELECT Товары.[Наименование товара] AS [Товар], Товары.[Цена единицы], Склад.[Наименование товара] AS [Склад_Наименование товара], Склад.[Количество]
FROM Товары, Склад
WHERE [Товары].[Наименование товара] = [Склад].[Наименование товара] AND [Товары].[Цена единицы]*[Склад].[Количество] AS [Сумма];
Ошибка заключается в использовании ключевого слова AS
в предложении WHERE
. В SQL нельзя присваивать псевдонимы (через AS
) в условиях фильтрации. Это действие нужно выполнять в блоке SELECT
.
Для корректной работы нужно переместить вычисление суммы в блок SELECT
, а не в WHERE
. Исправленный запрос будет выглядеть так:
SELECT
Товары.[Наименование товара] AS [Товар],
Товары.[Цена единицы],
Склад.[Наименование товара] AS [Склад_Наименование товара],
Склад.[Количество],
[Товары].[Цена единицы]*[Склад].[Количество] AS [Сумма]
FROM
Товары, Склад
WHERE
[Товары].[Наименование товара] = [Склад].[Наименование товара];
Перенос вычисления в SELECT
: Выражение [Товары].[Цена единицы]*[Склад].[Количество] AS [Сумма]
перемещено в блок SELECT
, так как это вычисление используется для вывода данных, а не для фильтрации.
Условия в WHERE
: Условия в WHERE
содержат только логические выражения, такие как сравнение [Товары].[Наименование товара] = [Склад].[Наименование товара]
.
Запрос теперь будет выполняться корректно, и результатом будет таблица, содержащая: