powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Необновляемый запрос
2 сообщений из 2, страница 1 из 1
Необновляемый запрос
    #39832505
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет народ!
Есть табличка declarItems у которой первичный ключ это составной CONSTRAINT PrimaryKey PRIMARY KEY (decId, ProductVCode, ClientRegId )
Пытаюсь выполнить запрос на обновление:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
UPDATE declaritems 
INNER JOIN 
  [SELECT 1 as decid,  IIf((products.importer<>""  ),  products.importer, products.Producer) as supplier ,
          products.ProductVCode,  sum(realquantity * products.capacity)/10 as dal 
   FROM ( egais_ttn_items 
   left join products on egais_ttn_items.alccode=products.alccode) 
   left join egais_ttn on egais_ttn_items.ttn_id = egais_ttn.id  
   GROUP BY IIf((products.importer<>""  ),  products.importer, products.Producer) , products.ProductVCode 
  ]. AS t 
ON (declaritems.ClientRegId = t.supplier) AND (declaritems.ProductVCode = t.ProductVCode) AND (declaritems.decId = t.decid) 
SET declaritems.Incom = t.dal;


но оно ругается "В операции должен использоваться обновляемый запрос."
Это почему? Из-за сложного внутреннего запроса?
Такое лечится?
...
Рейтинг: 0 / 0
Необновляемый запрос
    #39832533
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgikПривет народ!
Есть табличка declarItems у которой первичный ключ это составной CONSTRAINT PrimaryKey PRIMARY KEY (decId, ProductVCode, ClientRegId )
Пытаюсь выполнить запрос на обновление:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
UPDATE declaritems 
INNER JOIN 
  [SELECT 1 as decid,  IIf((products.importer<>""  ),  products.importer, products.Producer) as supplier ,
          products.ProductVCode,  sum(realquantity * products.capacity)/10 as dal 
   FROM ( egais_ttn_items 
   left join products on egais_ttn_items.alccode=products.alccode) 
   left join egais_ttn on egais_ttn_items.ttn_id = egais_ttn.id  
   GROUP BY IIf((products.importer<>""  ),  products.importer, products.Producer) , products.ProductVCode 
  ]. AS t 
ON (declaritems.ClientRegId = t.supplier) AND (declaritems.ProductVCode = t.ProductVCode) AND (declaritems.decId = t.decid) 
SET declaritems.Incom = t.dal;


но оно ругается "В операции должен использоваться обновляемый запрос."
Это почему? Из-за сложного внутреннего запроса?
Такое лечится?

Да в общем то все просто, в Аксессе (подчеркну именно в аксессовском sql) в запросе на изменение (UPDATE,DELETE ,INSERT) нельзя использовать одновременно группировку данных типа GROUP BY. Вместо группировки надо использовать выборки типа DISTINCTROW, но придется переписать весь ваш код. Тяжело сообразить без таблиц и бизнес логики.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Необновляемый запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]