Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
Соловьев ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.04 c
4-1102589793
serg128
2004-12-09 13:56
2005.01.30
Как на WinAPI получить текущий день месяца?


1-1106078717
fru$t
2005-01-18 23:05
2005.01.30
Excel и Delphi


9-1098357098
VolanD
2004-10-21 15:11
2005.01.30
Direct3D


3-1104146590
Otari
2004-12-27 14:23
2005.01.30
Query SQL command


3-1104254172
Чеширский_Кот
2004-12-28 20:16
2005.01.30
MySQL Database





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский