Помогите с запросом

NikifDN
Дата: 15.12.2011 14:51:58
Помогите решить, не получается задачка.. Есть таблица типа чеков продаж, где поля: номер чека, касса, сумма и есть таблица Кассы с полями: касса, остаток денежных средств. По окончании дня надо удалять все записи таблицы чеки и ставить сумму выручки в таблице кассы.
Остановился на:
UPDATE Кассы AS f1 SET f1.[Остаток денежных средств] = (select sum(f2.Сумма) from [Чеки] as f2 where f1.Наименование = f2.Касса  Group by Наименование);

но выдает ошибку: В операции должен использоваться обновляемый запрос.
mds_world
Дата: 15.12.2011 14:57:04
Вместо подзапроса используйте Dsum
Akina
Дата: 15.12.2011 14:59:19
Сохраните подзапрос как статический.
select Касса, sum(Сумма) As Сумма
from [Чеки]
Group by Касса

Выполните обновление с его использованием.
UPDATE Кассы, Подзапрос 
SET Кассы.[Остаток денежных средств] = Подзапрос.Сумма
WHERE Кассы.Наименование = Подзапрос.Касса
NikifDN
Дата: 15.12.2011 15:10:15
Akina, делал через статический, тоже не получалось:
UPDATE Кассы INNER JOIN [Подсчет сумм в кассе] ON Кассы.Наименование = [Подсчет сумм в кассе].Касса SET Кассы.[Остаток денежных средств] = [Кассы]![Остаток денежных средств]+[Подсчет сумм в кассе]![Сумма]
WHERE [Подсчет сумм в кассе].Касса=Кассы.Наименование;
NikifDN
Дата: 15.12.2011 15:11:57
mds_world, Dsum сработало на все, но получается условие на каждую кассу прописать
NikifDN
Дата: 15.12.2011 15:18:07
Akina, переделал, все равно выдает ошибку про обновляемый запрос:
mds_world
Дата: 15.12.2011 15:20:51
NikifDN
mds_world, Dsum сработало на все, но получается условие на каждую кассу прописать

Совершенно необязательно. Используйте тот же прием, что в вашем запросе. В третьем параметре Dsum пишете
"Наименование = " & f2.Касса 

И будет считаться по каждой кассе в отдельности
mds_world
Дата: 15.12.2011 15:23:01
А если поле Наименование текстовое, то нужны еще апострофы (см.ФАК)
"Наименование = '" & f2.Касса & "'"
NikifDN
Дата: 15.12.2011 15:26:08
mds_world, огромное тебе спасибо, все получилось!
NikifDN
Дата: 15.12.2011 15:30:37
А кто подскажет тогда почему не получилось через запрос, просто интересно, целый день убил.
Статический запрос:
SELECT [Денежные средства].Касса, Sum([Денежные средства].Сумма) AS Сумма
FROM [Денежные средства]
GROUP BY [Денежные средства].Касса;

Обновление:
UPDATE Кассы, [Подсчет сумм в кассе] 
SET Кассы.[Остаток денежных средств] = [Подсчет сумм в кассе].Сумма
WHERE Кассы.Наименование=[Подсчет сумм в кассе].Касса;