1

我正在使用 Maximo Asset Management System(版本 7.1.1.6)。我正在尝试在开始中心显示一个结果集,其中包含特定人员的“请勿呼叫”列表。但是,当对结果集使用查询时(保存在人员部分中的查询,其中包含适当的“where”子句,例如“department='ABC'”),我无法选择电话号码或电子邮件地址作为要显示的列。我相信这是因为 person 表中的“主要电话”和“主要电子邮件”字段实际上并不存在。它们是在 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 个新列之外,任何人都知道如何解决这个问题?我不想必须这样做,但如果必须,我可以。

4

1 回答 1

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

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

于 2011-02-16T18:05:49.530 回答