Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Необновляемый запрос / 2 сообщений из 2, страница 1 из 1
01.07.2019, 21:52
    #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
02.07.2019, 00:12
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Необновляемый запрос / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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