我正在使用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个新列外,任何人都知道如何解决此问题?我不想这样做,但如果必须,我可以。
答案 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
我还可以考虑在数据库配置应用程序中创建关系的解决方案,但上述查询更直接。