
Запрос на обновление записи
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
тогда MS SQL
- это мелкософтный sql?

Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

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


-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Привет снова! Я все еще мучаюсь с этим запросом...
Если я строю этот запрос -
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"
Если я строю этот запрос -
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

У тебя не указан тип join'а (inner join, left outer, right outer). Поэтому и ругается...
У меня в данном варианте синтаксиса
выдается ошибка "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 t1.key=t2.fiokey
GROUP BY t1.fio
Лечится это следующим образом
Код: Выделить всё
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
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Совместил и то и другое и проблема исчезла. Это результат
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
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

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
update ... set ... where
select ... from ... where
update ... set ... from - неправильно
select ... from ... where
update ... set ... from - неправильно

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

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
я бы процедуру написал...

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