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

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

05 фев 2008, 07:27

тогда MS SQL :) - это мелкософтный sql?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

05 фев 2008, 15:12

Владимир, я конечно не гуру по SQL, но запрос такого вида пройдёт в оракле и не пройдёт в FB в версии ниже 2.0 (кажется). С остальными не знаком... :)
Изображение
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

17 мар 2008, 11:06

Привет снова! Я все еще мучаюсь с этим запросом...

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

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"
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Yurich
Сообщения: 104
Зарегистрирован: 23 фев 2004, 19:07

17 мар 2008, 12:05

У тебя не указан тип join'а (inner join, left outer, right outer). Поэтому и ругается...
Владимир
Сообщения: 56
Зарегистрирован: 25 апр 2005, 13:57

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 
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

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
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

20 мар 2008, 10:57

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

update ... set ... from - неправильно
Изображение
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

20 мар 2008, 18:33

фихня какая-та получается %) и как же тут сделать вложенный запрос???
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

21 мар 2008, 10:02

я бы процедуру написал...
Изображение
Владимир
Сообщения: 56
Зарегистрирован: 25 апр 2005, 13:57

21 мар 2008, 11:36

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

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