Lotsia PLM: Форум по семейству систем PLM/PDM/TDM/ERP/Workflow

Для специалистов по внедрению систем, профессиональных администраторов и пользователей.
Текущее время: 23 янв 2018, 22:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Нужна помощь с запросом...
СообщениеДобавлено: 24 сен 2009, 13:45 
Не в сети
Активный участник
Аватара пользователя

Зарегистрирован: 24 авг 2006, 08:06
Сообщения: 1645
Откуда: 55.745578,37.665825
Благодарил (а): 8 раз.
Поблагодарили: 3 раз.
все пытаюсь ускорится с выводом всех атрибутов но уже не одного объекта а нескольких
в 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

Андрей, Юрий подскажите как сюда прикрутить выборку с id'шниками объектов и получить нужные атрибуты нужных объектов одним запросом??????

ps
уровень совместимости базы должен быть 90, у нас после перехода с 2000 на 2005 был 80 - вроде поправили на 90... еще ничего не вылезло

_________________

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный



Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Нужна помощь с запросом...
СообщениеДобавлено: 24 сен 2009, 15:08 
Не в сети
Активный участник

Зарегистрирован: 13 янв 2005, 14:30
Сообщения: 239
Откуда: Украина, Донецк
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Самый оптимальный способ это запрос типа:
Код:
select tr1.link_id, attr.*, sv.*, dv.*, nv.*
from
LSDBO.tree_link tr1
inner join LSDBO.attrib_value as av on av.Object_id=tr1.link_id and tr1.parent_id=100000383030070 and tr1.link_filial_id=1

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


Все что выше
inner join LSDBO.attrib_value as av on av.Object_id=tr1.link_id and tr1.parent_id=100000383030070 and tr1.link_filial_id=1
Является выборкой ид объектов, это необязательно таблица дерева связей могут быть и другие варианты
но они должны в результате возвращять множество идентификаторв объектов котрые участвуют
в филтре av.Object_id=tr1.link_id

Затем при развороте у нас ключевое поле tr1.link_id идентификатор объектов для группировки.

С виду не так понятно и удобно, но это оптимальный вариант.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB