人员表的启动中心结果集

时间:2011-01-03 20:07:09

标签: sql maximo

我正在使用Maximo资产管理系统(版本7.1.1.6)。我正在尝试在启动中心显示包含特定人员的“请勿呼叫”列表的结果集。但是,当对结果集使用查询时(在People部分中保存的查询包含相应的“where”子句,例如“department ='ABC'”),我无法选择电话号码或电子邮件地址要显示的列。我相信这是因为人员表中的“主要电话”和“主要电子邮件”字段并不存在。它们是在People应用程序中连接到Phone和Email表并在personid列上连接的虚拟字段。如果我在数据库中运行以下查询,我会得到我想要的结果集:

select * from dbo.person as p 
left outer join dbo.phone as ph on p.personid=ph.personid and ph.isprimary=1 
left outer join dbo.email as e on p.personid=e.personid and e.isprimary=1 

不幸的是,对于结果集,您无法访问“FROM”子句,只能编辑“WHERE”子句。

除了为主要电话和主电子邮件的人员表添加2个新列外,任何人都知道如何解决此问题?我不想这样做,但如果必须,我可以。

1 个答案:

答案 0 :(得分:1)

对于where子句

,这个怎么样?
... where (select count(*) from dbo.phone ph where :personid = ph.personid and ph.isprimary=1) > 0 and (select count(*) from dbo.email e where :personid = e.personid and e.isprimary=1) > 0

我还可以考虑在数据库配置应用程序中创建关系的解决方案,但上述查询更直接。