Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UPDATE .... SELECT по нескольким полям [D5, IB6.x]


Hawk2 ©   (2006-03-25 17:12:00) 

Как сделать UPDATE по нескольким полям с помощью связки UPDATE .... SELECT . Данные для обновления возвращает подзапрос:
SELECT
LSCHET,
SUM(DOLG),
SUM(NACHISL),
SUM(DOP_NACH),
SUM(OPLATA)
FROM RASCHET
LEFT JOIN SERVICES ON RASCHET.SKOD=SERVICES.SKOD
WHERE SERVICES.NBALANS=1
GROUP BY LSCHET


Desdechado   (2006-03-26 19:45:00) [1]

мой телепатор тоже об этом говорил, вот только синтаксиса [8] нет, поэтому предлагал ХП


Плохиш   (2006-03-26 03:16:00) [2]

Телепатор говорит, что имеется в виду что-то типа

update что-то
set
f1=LSCHET,
f2=SUM(?.DOLG),
f3=SUM(?.NACHISL),
f4=SUM(?.DOP_NACH),
f5=SUM(?.OPLATA)
FROM RASCHET r
LEFT JOIN SERVICES s ON r.SKOD=s.SKOD
WHERE s.NBALANS=1


sniknik   (2006-03-25 22:47:00) [3]

> Какая нафиг разница что я буду делать с результатами,
ну как какая? зная что делается и для чего делается можно добится лучшего результата. или просто хоть чегото добиться, если постановка задачи "ни в ..., ни в красную армию".

> Я ПОПРОСИЛ ПОМОЧЬ СО СКРИПТОМ
давая за основу нередактируемый запрос? что по нему(/в нем) править? (в "данных для обновления которые возвращает подзапрос") или по нему надо структуру базы/таблиц угадать?

> я тут не причем.
ага. глупый автор базы еще и пытками заставляет работающих с ней косноязычно выражатся. стлолкнулся с базой/автором и уже сам не знаеш чего хочеш...

не переваливай с больной головы на э... непонятно какую (возможно и здоровую, еще непонятно что там с базой).


Hawk2   (2006-03-25 22:05:00) [4]

Какая нафиг разница что я буду делать с результатами, Я ПОПРОСИЛ ПОМОЧЬ СО СКРИПТОМ, дело в том что база эта создана не мной, но она реальная (не домашнее задание студента), по поводу того на сколько правильно она сделана, я тут не причем. Так вот в таблице RASCHET хранятся записи с счетами абонентов, видами предоставленых услуг, долгами, начислениями и оплатами по этим услугам, самих видов услуг около 250, но все они группируются по 5 баллансовым группам, вот именно это я и хочу сделать.


Desdechado   (2006-03-25 20:05:00) [5]

sniknik ©   (25.03.06 19:46) [4]
если у автора результаты расчетов сохраняются, то можно сумму долга и списывать, а не процентировать :)

что, собственно, не отменяет [3] - только додумывать нужно не в направлении [4], а в направлении [-1]


sniknik   (2006-03-25 19:46:00) [6]

Desdechado ©   (25.03.06 19:01) [3]
ага
FOR твой SELECT...
UPDATE ... SUM(DOLG) = 5 ...

;о))


Desdechado   (2006-03-25 19:01:00) [7]

в ХП:
FOR твой SELECT...
 UPDATE...


Hawk2   (2006-03-25 18:08:00) [8]

Остроумие так и прет, я в курсе что ты умный, если то о чем я спросил абсурд и так сделать не возможно то надо было просто сказать, юморист х...


sniknik   (2006-03-25 17:28:00) [9]

и в какую сумму надо измененить? да еще и несколько (из разных таблиц небось?). по моему ты "слегка" ошибся адресом... надо было на форум чародейства и волшебства (или лично Гарри Потеру) ;о)


Наверх

Титульная страница Поиск, карта сайта Написать письмо