Maximo SQL BiRT сообщает о нескольких столбцах alnvalue - PullRequest
0 голосов
/ 25 мая 2018

У меня есть BiRT отчет, связанный с базой данных SQL Server.Мне нужно иметь в этом отчете несколько столбцов Assetspec.alnvalue, отфильтровать по Assetspec.assetattrid той же таблицы.

Для тех, кто не знает Maximo, alnvalue похоже на «другое»колонка.Поэтому, если я сделаю:

Select assetspec.alnvalue AS SetOne
  from assetspec 
  where assetspec.assetattrid = 'something'

, я получу всю информацию о чем-то.В моем случае мне нужно иметь в отдельных столбцах 5 наборов информации "from" assetattrid и все это в одном запросе ...

Это вообще возможно?

1 Ответ

0 голосов
/ 27 мая 2018

Есть два способа сделать это: с помощью коррелированных подзапросов или объединений.Вообще говоря, подзапрос вызовет проблемы, если ваш подзапрос вернет более одной строки.Кроме того, в общем случае опция объединения откроет вам больше возможностей для других вещей, которые вы можете сделать в своем запросе (например, группирование).

Вот как выглядит ваш запрос, если мы добавим коррелированный подзапрос квернуть информацию об атрибуте «что-то еще».

Select assetspec.alnvalue AS SetOne
    ,(select as2.alnvalue 
        from assetspec as2
        where as2.assetnum = assetspec.assetnum
            and as2.siteid = assetspec.siteid
            and as2.assetattrid = 'something else'
        ) As SetTwo
from assetspec 
where assetspec.assetattrid = 'something'

А вот как выглядит ваш запрос, если мы добавим присоединение для возврата этой информации.

Select assetspec.alnvalue AS SetOne
    ,as2.alnvalue As SetTwo
from assetspec 
    join assetspec as2
        on as2.assetnum = assetspec.assetnum
        and as2.siteid = assetspec.siteid
        and as2.assetattrid = 'something else'
where assetspec.assetattrid = 'something'

Надеюсь, это поможет.

...