Nick писал(а) 11. Апреля 2007 :: 02:57:А как насчет удаления истории периодических реквизитов? по идее можно одним запросом удалить по заданную дату или я ошибаюсб?
delete from _1sconst where date < cast('20070101' as datetime)
Только поаккуратнее нужно с этим: на самом деле сначала нужно перенести на первую сохраняемую дату последние ранее назначенные значения реквизитов. Скрипт с ходу не нашёл, а заново писать лениво.
ага, вот что-то похожее. Но просьба подходить с осторожностью и использовать исключительно как справочный образец, т.к. выдрано из древней обработки, а рабочая она или тестовая - звиняйте, уже не вспомню
insert into _1sconst
|(id, objid, date, value, docid, time, actno,lineno_,tvalue)
|select ta.id0 as id, ta.objid0 as objid, cast('20031231' as datetime), tb.value, tb.docid, tb.time, tb.actno, tb.lineno_, tb.tvalue from
|(select t0.id as id0, t0.objid as objid0, (select top 1 ref.row_id from
|_1sconst as ref
|where
|ref.id = t0.id
|AND
|ref.date < '20040101'
|AND
|ref.objid = t0.objid
|Order by ref.date desc, ref.time desc, ref.docid desc, ref.row_id desc) rowid
|from (select distinct id,objid from _1sconst where
|id in (select id from "+ИмяВрТаб+")
|AND
|date < '20040101')
|as t0
|) ta
|left join
|(select row_id, date, value, docid, time, actno, lineno_,tvalue from _1sconst) tb
|on ta.rowid= tb.row_id