У меня возникли некоторые трудности в понимании следующего предложения WHERE в запросе T-SQL (SQL Server 2000/2005):
update #tempTable
SET
Total_Avg=isnull(TerminationReason,'terminated'),
Individual_Subscriptions=null,
Business_Subscriptions=null,
Other_subscriptions=null,
-- snip. 10 more fields set to NULL.
PMIE_BI=null,
Digital_Editions_BI=null
where
(
AbcTerminationDate<=dbo.fnGetPeriodFinalDate(@periodid)
and (AbcTerminationDate!=19000101 or AbcTerminationDate is null)
and (Total_Avg is not NULL or PrevTotalAvg is not NULL)
)
В частности, второе предложение нене имеет смысла - это 2 подпункта, разделенных оператором ИЛИ , кажутся противоречивыми.
Поле AbcTerminationDate объявлено как INT NULL в таблице под названием Участники .Я полагаю, что дата 19000101 в системе означает NULL или значение по умолчанию или отсутствие значения, т. Е. Член NOT завершен.Таким образом, запрос, по-видимому, очищает целый ряд полей / цифр, если элемент помечен как завершенный, что будет, если AbcTerminationDate равен NULL или имеет значение по умолчанию.
Не знаябольше информации, что ты с ней делаешь?