А когда таковых больше одного - получаем multiple rows in singleton
select?
А как оно там больше одного получится при условии, что диапазоны дат для
каждой версии записи не пересекаются?
Чуть ниже.
И чем битвин лучше фирста по индексу?
Select D.Num, C.Address
from Doc D
Inner Join Clients C on D.IdClient = C.IdClient and D.Dat between
C.StartDt
and C.EndDt
А с фирстом еще и подзапрос рисовать придется...
Ды ну?
Select D.Num, C.Address
from Doc D
Inner Join Clients C on D.IdClient = C.IdClient_Generation
А, ну да, для твоей схемы оно конешно, у меня-то моя перед глазами стоит...
:)))
Ну а все-таки поведай, как ты поступаешь, когда меняется дата актуальности
какой-то версии записи в справочнике? Шерстишь все документы и подменяешь
где надо IdClient_Generation?
Ай, Глебушка, не надо ля-ля :) Там подвижки/сжатия/растяжения массы
периодов нужны по результатам редактирования одного, какие там статьи про
блокировки...
Не знаю, я просто блокирую все "версии" одной записи. Мне как бы большего не
требуется.
Ты подумай как-нить на досуге например о календарном планировании загрузки
оборудования деталями, требующими разной продолжительности обработки на
разных единицах. Хотя бы в количестве трёх штук одного и двух другого.
Только крышу заранее подвяжи чем-нить, чтоб не съехала незаметно ;)
Ну ты загнул. :) Не буду. Я честно говоря с такими задачами не сталкивался.
Но, имхо, это не про переодические реквизиты. Или какой-то их эксклюзивный
вариант...
With b/r. Gleb.