1

Maximo Asset Management System (バージョン 7.1.1.6) を使用しています。特定の人物の着信拒否リストを含む結果セットをスタート センターに表示しようとしています。ただし、結果セットのクエリ ("department='ABC'" などの適切な "where" 句を含む People セクションに保存されたクエリ) を使用する場合、電話番号または電子メール アドレスを次のように選択できません。表示する列。これは、person テーブルの "Primary Phone" フィールドと "Primary Email" フィールドが実際には存在しないためだと思います。これらは、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" 句のみを編集できます。

プライマリ電話番号とプライマリ電子メールの person テーブルに 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 に答える