Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Обновление таблицы: переоткрыть подзапрос   Найти похожие ветки 

 
Соловьев ©   (2004-12-24 13:25) [0]

Есть запрос:

update cm_SaleStageInSale
set DateBegin = q.DateBegin2, DateEnd = q.DateEnd2
from
(
select
ssis1.id as s_id,
ss1.OrderNumber,ss1.FromBegin,ss1.AverageDuration,
isnull(
(select min(ssis2.DateEnd) from cm_SaleStageInSale ssis2
left join cm_SaleStage ss2 on ss2.id = ssis2.SaleStage_id
where ssis2.Sale_id = 379 and ss2.OrderNumber = ss1.OrderNumber - 1)
+ss1.FromBegin,ssis1.DateBegin)
as DateBegin2,
isnull(
(select min(ssis2.DateEnd) from cm_SaleStageInSale ssis2
left join cm_SaleStage ss2 on ss2.id = ssis2.SaleStage_id
where ssis2.Sale_id = 379 and ss2.OrderNumber = ss1.OrderNumber - 1)
+ss1.FromBegin+ss1.AverageDuration, ssis1.DateEnd)
as DateEnd2
from cm_SaleStageInSale ssis1
left join cm_SaleStage ss1 on ss1.id = ssis1.SaleStage_id
where
ssis1.Sale_id = 379
) q
where id = q.s_id


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


 
Stanislav ©   (2004-12-24 16:28) [1]

Неполучится. У тебя обновленная запись будет по завершению транзакции т.е. после выполнения всего запроса.
Нужно делать цикл.



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.026 c
4-1102923618
denis24
2004-12-13 10:40
2005.01.30
запуск второй копии програмы из faq


1-1105943405
Zhekson
2005-01-17 09:30
2005.01.30
Вот так грабли 8-)


1-1105397600
Паша555
2005-01-11 01:53
2005.01.30
Мерцание и Двойная Буферизация


11-1087991509
Boris
2004-06-23 15:51
2005.01.30
Присваиваю TBButtonText - не работает :(


6-1100409416
Сергей Г
2004-11-14 08:16
2005.01.30
Wap страничка