update Table...

Artem74
Дата: 17.11.2006 12:21:01
Возможно ли в update сформировать так:
update Tabl1 set Table1.a1=(select sum(Tabl2.Summa) from Tabl2))

У меня выдаёт: "в операции должен использоваться обновляемый запрос".... но почему так то нельзя?
Karfaqen
Дата: 17.11.2006 12:29:07
А так:
update Tabl1, (select sum(Tabl2.Summa) as a0 from Tabl2)) as Tabl0
set Tabl1.a1=Tabl0.a0 
?
BULK INSERT
Дата: 17.11.2006 12:32:07
Artem74
но почему так то нельзя?


а вы сами то как думаете? - вы пробовали анализировать SQL Стэйтмент что вы привели?

ЗЫ


просто просто возьмите выражение в кавычки... так наверняка сработает

"select sum(Tabl2.Summa) from Tabl2"
Artem74
Дата: 17.11.2006 12:55:23
BULK INSERT
Artem74
но почему так то нельзя?


а вы сами то как думаете? - вы пробовали анализировать SQL Стэйтмент что вы привели?

ЗЫ


просто просто возьмите выражение в кавычки... так наверняка сработает

"select sum(Tabl2.Summa) from Tabl2"


и что тогда получается?... в числовое поле заносятся строки со значением "select ..." ?
proposed amendment
Дата: 17.11.2006 13:01:37
Artem74


и что тогда получается?


это была шутка...
Artem74
Дата: 17.11.2006 13:02:18
Karfaqen
А так:
update Tabl1, (select sum(Tabl2.Summa) as a0 from Tabl2)) as Tabl0
set Tabl1.a1=Tabl0.a0 
?


всё равно "должен иметь обновляемый запрос" :-(
Artem74
Дата: 17.11.2006 13:06:57
Artem74
Karfaqen
А так:
update Tabl1, (select sum(Tabl2.Summa) as a0 from Tabl2)) as Tabl0
set Tabl1.a1=Tabl0.a0 
?


всё равно "должен иметь обновляемый запрос" :-(


Да.... прога пишется на Delphi через ADO к этому бедному mdb...
Karfaqen
Дата: 17.11.2006 14:00:37
Artem74
всё равно "должен иметь обновляемый запрос" :-(
А ну да, SUM() же. Группировка, присутствующая в запросе в любом виде (даже в таком безобидном как ваш) делает запрос необновляемым. И это форс-мажор в MSA, который в случае простого суммирования можно иной раз обойти при помощи DSum() - но это в самом MSA, а снаружи функции-то не видны, так что из Delphi такой номер не пройдет.
Artem74
Дата: 17.11.2006 14:13:01
:-(
Artem74
Дата: 23.11.2006 16:22:38
но должен быть какой-то выход... но какой только?