в 2005 сервере есть поворот на 90 гр - вот только никак не пойму как применить данный запрос для нескольких id
Код: Выделить всё
select *
from (select attr.id as IdTypeAttr,
case when attr.data_type = 'S' then cast(isNull(sv.value,'')+isNull(sv.value1,'') as sql_variant)
when attr.data_type = 'T' then cast(dv.value as sql_variant)
when attr.data_type = 'N' then cast(nv.value as sql_variant) end as aValue
from (select * from LSDBO.attrib_value as av where av.Object_id=100000031100016) as av left join
LSDBO.attrib as attr on attr.id = av.Attrib_ID left join
LSDBO.value_string as sv on sv.id = av.Value_ID left join
LSDBO.value_datetime as dv on dv.id = av.Value_ID left join
LSDBO.value_numeric as nv on nv.id = av.Value_id) AS SourceTable
Pivot
(max(aValue)
for IdTypeAttr in ([100004068400000],[100004081100000],[100004081600000],[100004086200000],[100004086700000],[100004091100000],[100004091200000],[100004964000000]) -- тут пишем id каких атрибутов нужны
) AS PivotTable
ps
уровень совместимости базы должен быть 90, у нас после перехода с 2000 на 2005 был 80 - вроде поправили на 90... еще ничего не вылезло