Мне нужно обновить столбец рядом с ним после удаления пробелов в дате. Например, если первый эффективный период (1/4/2014-30/4/2014) и второй эффективный период (15/5/2014 - 31/5/2014), разрыв составляет 15 дней. Теперь мне нужно обновить первый эффективный до i.e 30/4/2014 до 1 даты до следующего эффективного с 1 года - 15/5/2014 = 14/5/2014. Таблица Обновление столбца с колонкой рядом с ним
Ожидаемое обновление
Я пытался получать результат этого кода т.е.
Update ItemHospitalMapping
Set EffectiveTo = (select DATEADD(dd,-1,A.EffectiveFrom)
from ItemHospitalMapping as a join ItemHospitalMapping as B
on a.NameOfHospital=B.NameOfHospital
and a.NameOfItem=B.NameOfItem
Where a.EffectiveTo >B.EffectiveTo)
where NameOfHospital=any(select a.NameOfHospital
from ItemHospitalMapping as a join ItemHospitalMapping as B
on a.NameOfHospital=B.NameOfHospital and a.NameOfItem=B.NameOfItem
Where a.EffectiveTo >B.EffectiveTo) and
EffectiveTo=any(select B.EffectiveTo
from ItemHospitalMapping as a join ItemHospitalMapping as B
on a.NameOfHospital=B.NameOfHospital and a.NameOfItem=B.NameOfItem
Where a.EffectiveTo >B.EffectiveTo)
Но не были успешными в возвращении одну строку для обновления. Ошибка, которую я получаю, - Subquery возвращает более 1 значения. Это недопустимо, когда подзапрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
из-за подзапроса в любом –
ваш стол выглядит так испорчен. a1000 diol a2 row имеет значение toDate
Steam
В приведенной выше таблице мы видим разрыв в датах, то есть для A1000 | Diol | a1 | Hospital of Hasmath | 100.00 | 50.00 | 2014-04-13 | 2014-04-29 есть две записи с разными эффектами. EffectiveTo. Между первым эффективным и вторым эффектом существует разрыв. т.е. между 2014-04-29 и 2014-04-31, поэтому мне нужно удалить этот пробел в 1 день и обновить предыдущую дату, которая составляет 2014-04-29 до 2014-04-30 –