Страница 2 из 3

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

Добавлено: 05 фев 2008, 07:27
Dr_Grizzly
тогда MS SQL :) - это мелкософтный sql?

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

Добавлено: 05 фев 2008, 15:12
Игорь Акопян
Владимир, я конечно не гуру по SQL, но запрос такого вида пройдёт в оракле и не пройдёт в FB в версии ниже 2.0 (кажется). С остальными не знаком... :)

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

Добавлено: 17 мар 2008, 11:06
Dr_Grizzly
Привет снова! Я все еще мучаюсь с этим запросом...

Если я строю этот запрос -

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

Он должен работать???? Т.к. мне ща ругается что "Ошибка синтаксеса в предложении FROM"

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

Добавлено: 17 мар 2008, 12:05
Yurich
У тебя не указан тип join'а (inner join, left outer, right outer). Поэтому и ругается...

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 

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

Добавлено: 20 мар 2008, 08:21
Dr_Grizzly
Совместил и то и другое и проблема исчезла. Это результат

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: Запрос на обновление записи

Добавлено: 20 мар 2008, 10:57
Игорь Акопян
update ... set ... where
select ... from ... where

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

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

Добавлено: 20 мар 2008, 18:33
Dr_Grizzly
фихня какая-та получается %) и как же тут сделать вложенный запрос???

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

Добавлено: 21 мар 2008, 10:02
Игорь Акопян
я бы процедуру написал...

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

Добавлено: 21 мар 2008, 11:36
Владимир
Игорь Акопян писал(а):update ... set ... where
select ... from ... where

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