Нужно получить значения всех периодических реквизитов на дату.
Запрос впринципе написал:
select
c.objid [objid],
c.id [id],
c.value [value],
c.tvalue [tvalue]
from
(
select
c.objid,
c.id,
max(convert(char(8),c.date,112) + substring(' ',1,10-len(convert(char(10),c.time)))+ rtrim(ltrim(convert(char(10),c.time))) + rtrim(ltrim(convert(char(10),c.row_id)))) row_id
from
_1sconst c
where
date < '20060101' and
date <> '17530101'
group by
c.objid,
c.id
) vt
inner join
_1sconst c on c.row_id = convert(int,substring(vt.row_id,19,len(vt.row_id)-18))
но смущает куча преобразований типов. Может можно как-то оптимальней? По идее функция max() ведь возвращает значение из какой-то строки, может можно как-то выцепить эту строку, чтобы не писать это:
max(convert(char(8),c.date,112) + substring(' ',1,10-len(convert(char(10),c.time)))+ rtrim(ltrim(convert(char(10),c.time))) + rtrim(ltrim(convert(char(10),c.row_id)))) row_id