【问题标题】:Maximo SQL BiRT reporting multiple columns of alnvalueMaximo SQL BiRT 报告多列 alnvalue
【发布时间】:2018-05-25 17:48:18
【问题描述】:
我有一个与 SQL Server 数据库有关的BiRT 报告。我需要在此报告中有多个Assetspec.alnvalue 列,按同一张表的Assetspec.assetattrid 过滤。
对于不了解 Maximo 的人来说,alnvalue 就像一个“其他东西”专栏。所以如果我这样做:
Select assetspec.alnvalue AS SetOne
from assetspec
where assetspec.assetattrid = 'something'
我得到了某事的所有信息。我的情况是,我需要在单独的列中包含 5 组“来自”assetattrid 的信息,并将所有这些信息放在一个查询中......
这可能吗?
【问题讨论】:
标签:
sql
sql-server
birt
maximo
【解决方案1】:
有两种方法可以做到这一点:使用相关子查询或连接。一般来说,如果您的子查询返回多行,子查询就会出现问题。此外,一般来说,连接选项会为您打开更多选项,用于您可以在查询中执行的其他操作(例如,分组)。
如果我们添加一个相关的子查询以返回有关“其他”属性的信息,您的查询将如下所示。
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'
希望对你有帮助。