Задать вопрос
@alehandry

Как в поле таблицы вывести значение из запроса?

Есть база данных, которую я разработал для диплома
6658b76f07768262272361.png

Также я написал запросы, которые будут отображать итоговую стоимость услуг и материалов:

ИтоговаяСтоимостьУслуг
SELECT [Список услуг].[ID заявки], SUM([Список услуг].Количество * [Прайс-лист услуг].Цена) AS ИтоговаяЦенаУслуг
FROM Заявки INNER JOIN ([Прайс-лист услуг] INNER JOIN [Список услуг] ON [Прайс-лист услуг].[ID услуги] = [Список услуг].[ID услуги]) ON Заявки.[ID заявки] = [Список услуг].[ID заявки]
WHERE [Прайс-лист услуг].Дата = (
        SELECT MAX(plu2.Дата)
        FROM [Прайс-лист услуг] plu2
        WHERE plu2.[ID услуги] = [Прайс-лист услуг].[ID услуги]
        AND plu2.Дата <= Заявки.[Дата начала]
    )
GROUP BY [Список услуг].[ID заявки];

ИтоговаяСтоимостьМатериалов
SELECT [Список материалов].[ID заявки], SUM([Список материалов].Количество * [Прайс-лист материалов].Цена) AS ИтоговаяЦенаМатериалов
FROM Заявки INNER JOIN ([Прайс-лист материалов] INNER JOIN [Список материалов] ON [Прайс-лист материалов].[ID материала] = [Список материалов].[id материалы]) ON Заявки.[ID заявки] = [Список материалов].[ID заявки]
WHERE [Прайс-лист материалов].Дата = (
        SELECT MAX(plm2.Дата)
        FROM [Прайс-лист материалов] plm2
        WHERE plm2.[ID материала] = [Прайс-лист материалов].[ID материала]
        AND plm2.Дата <= Заявки.[Дата начала]
    )
GROUP BY [Список материалов].[ID заявки];

ИтоговаяСтоимостьЗаявок
SELECT Заявки.[ID заявки], Заявки.Адрес, Заявки.[Дата начала], Заявки.[Дата окончания], ИтоговаяСтоимостьУслуг.ИтоговаяЦенаУслуг, ИтоговаяСтоимостьМатериалов.ИтоговаяЦенаМатериалов, ИтоговаяСтоимостьУслуг.ИтоговаяЦенаУслуг + ИтоговаяСтоимостьМатериалов.ИтоговаяЦенаМатериалов AS Сумма
FROM (Заявки LEFT JOIN ИтоговаяСтоимостьУслуг ON Заявки.[ID заявки] = ИтоговаяСтоимостьУслуг.[ID заявки]) LEFT JOIN ИтоговаяСтоимостьМатериалов ON Заявки.[ID заявки] = ИтоговаяСтоимостьМатериалов.[ID заявки];


Задача состоит в том, чтобы в таблице Заявки в поле Сумма отображалась итоговая цена за услуги и материалы.

Я попробовал следующий запрос:
UPDATE Заявки 
SET Заявки.Сумма = (
    SELECT ИтоговаяСтоимостьУслуг.ИтоговаяЦенаУслуг + ИтоговаяСтоимостьМатериалов.ИтоговаяЦенаМатериалов 
    FROM ИтоговаяСтоимостьУслуг 
    LEFT JOIN ИтоговаяСтоимостьМатериалов ON ИтоговаяСтоимостьУслуг.[ID заявки] = ИтоговаяСтоимостьМатериалов.[ID заявки]
    WHERE Заявки.[ID заявки] = ИтоговаяСтоимостьУслуг.[ID заявки]
);


Но при выполнении вылезла ошибка
Ссылка на поле 'Заявки.[ID заявки]' может относиться к полям нескольких таблиц, перечисленных в предложении FROM инструкции SQL.


Как решить проблему? Или может есть другие способы как вывести итоговую сумму в таблице "Заявки"?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы