Запрос на обновление записи

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Запрос на обновление записи

Re: Запрос на обновление записи

Dr_Grizzly » 21 мар 2008, 20:04

Конечно, можно написать обычную процедуру, которая просто будет листать все записи и считать и обновлять поля.... Но это же ооооооооочень мееееееедленннннаая процедура с таким количеством записей, вот и хочется это на SQL возложить... ;)

Re: Запрос на обновление записи

Dr_Grizzly » 21 мар 2008, 20:02

По поводу того где я вояю, вояю я в Делфе 6, компонента ADOQuery, я проверил, язык один в один с языком который в MS Access, когда там строишь запросы...

Этот же запрос я кидаю в аксес и та же самая ошибка...

Inner тоже не канает :) та же самая ошибка на том же месте :)

Re: Запрос на обновление записи

Владимир » 21 мар 2008, 15:18

Игорь Акопян писал(а):на сколько я помню в SQL92 такого нет... ;)
Ну во-первых как минимум есть SQL99 :) (хотя там этого тоже вроде нет), а во-торых, насколько я помню, Dr_Grizzly ваяет на Transact-SQL от MS, а там это разрешено

Re: Запрос на обновление записи

Игорь Акопян » 21 мар 2008, 14:52

на сколько я помню в SQL92 такого нет... ;)

Re: Запрос на обновление записи

Владимир » 21 мар 2008, 11:36

Игорь Акопян писал(а):update ... set ... where
select ... from ... where

update ... set ... from - неправильно
Это почему же update ... set ... from - неправильно??? Очень даже правильно, а Dr_Grizzly скорее всего перепутал типы соединения, ему не LEFT или RIGHT, а INNER нужно

Re: Запрос на обновление записи

Игорь Акопян » 21 мар 2008, 10:02

я бы процедуру написал...

Re: Запрос на обновление записи

Dr_Grizzly » 20 мар 2008, 18:33

фихня какая-та получается %) и как же тут сделать вложенный запрос???

Re: Запрос на обновление записи

Игорь Акопян » 20 мар 2008, 10:57

update ... set ... where
select ... from ... where

update ... set ... from - неправильно

Re: Запрос на обновление записи

Dr_Grizzly » 20 мар 2008, 08:21

Совместил и то и другое и проблема исчезла. Это результат

SELECT t1.nomerkred as kred, t1.datakred as dat, sum(nachfed) AS Sum_purch
FROM kreditname AS t1 RIGHT JOIN finanskred AS t2 ON t1.[key]=t2.kredkey
GROUP BY t1.nomerkred, t1.datakred

Теперь когда впихиваю это в запрос на обновление, она мне ругается на ошибку синтаксиса (пропущен оператор), начиная с "subq.Sum_purch From (... ) as SubQ"

Update kreditname
set kreditname.itogonachfed = subq.Sum_purch
From
(SELECT t1.nomerkred as kred, t1.datakred as dat, sum(nachfed) AS Sum_purch
FROM kreditname AS t1 RIGHT JOIN finanskred AS t2 ON t1.[key]=t2.kredkey
GROUP BY t1.nomerkred, t1.datakred) as SubQ
WHERE kreditname.nomerkred = SubQ.kred and kreditname.datakred=subq.dat

Re: Запрос на обновление записи

Владимир » 17 мар 2008, 12:54

У меня в данном варианте синтаксиса

Код: Выделить всё

SELECT t1.fio as Fio, sum(t2.sum) AS Sum_purch
FROM tab1 AS t1 JOIN tab2 AS t2 ON t1.key=t2.fiokey
GROUP BY t1.fio 
выдается ошибка "Incorrect syntax near the keyword 'key'."

Лечится это следующим образом

Код: Выделить всё

SELECT t1.fio as Fio, sum(t2.sum) AS Sum_purch
FROM tab1 AS t1 JOIN tab2 AS t2 ON [B]t1.[key][/B]=t2.fiokey
GROUP BY t1.fio 

Вернуться к началу