1

私が報告しているデータセットがあります。しかし、データの一部が複製され、一部はありません:Crystalに無関係な複数の1:Nレコードを表示する方法

ID Project Org Type Facility AssessorManager Assessor 
123 Proj1 Org1 Ty1 Facil1  Smith    Jones  
123 Proj1 Org2 Ty1 Facil2  Smith    Black 
123 Proj1 Org2 Ty1 Facil3  Smith    Black 
234 Proj1 Org3 Ty2 Facil3  Harris    Jones 
234 Proj1 Org1 Ty2 Facil3  Harris    Jones 
393 Proj2 Org2 Ty3 Facil1  Smith    Black 

ので、IDのために、1があります:プロジェクト、タイプ、およびAssessorManagerとの1人の関係は、 Org、Facility、Assessorとの1:Nの関係があります。

必要以上に繰り返されないレポートを作成し、1:1データを報告してから、1:Nデータセットごとにストアドプロシージャを作成する必要があります。私は以下のような結果を得ますが、それは犬のSLOWです。

ID Project Org Type Facility AssessorManager Assessor 
123 Proj1  Org1 Ty1 Facil1  Smith    Jones 
       Org2   Facil2      Black 
          Facil3 

234 Proj1  Org3 Ty2 Facil3  Harris   Jones 
       Org1 

393 Proj2  Org2 Ty3 Facil1  Smith    Black 

データを順序付けして別個のデータを表示する1:Nフィールドの機能を作成できますか?私はフィールドの複製オプションを抑制することができますが、私はID内の各フィールドを独自にソートする必要があります。私は4つの1:Nフィールドがあり、互いに独立しているので、グループごとにグループを設定することはできません。

(過去にしてグループを行うには、次のようになります。レポートような結果になっています。

ID Project Org Type Facility AssessorManager Assessor 
123 Proj1  Org1 Ty1 Facil1  Smith    Jones 
                 Black 
          Facil2      Jones 
                 Black 
          Facil3      Jones 
                 Black 
       Org2   Facil1      Jones 
                 Black 
          Facil2      Jones 
                 Black 
          Facil3      Jones 
                 Black 

...など)

EDIT ... 答え... 私はPowerUserの答えを受け入れました。主に彼の2番目の提案を使用しました。私はクエリにフィールドを追加しました。 1:Nフィールドの一部がクエリフィールドと並べ替えフィールドであったため、重複はありました。おそらくここに示したものより重複がありますが、これがアイデアです。また、カンマを使用してメモフィールドの値を区切るのではなく、リターン文字を使用しました。

ID Project Org Orgs  Type Facility Facilities   AssessorManager Assessors 
123 Proj1  Org1 Org1,Org2 Ty1  Facil1 Facil1,Facil2,Facil3 Smith   Jones,Black 
123 Proj1  Org2 Org1,Org2 Ty1  Facil2 Facil1,Facil2,Facil3 Smith   Jones,Black 
123 Proj1  Org2 Org1,Org2 Ty1  Facil3 Facil1,Facil2,Facil3 Smith   Jones,Black 

答えて

0

+1だから私はこれをまっすぐにしましょう。それは動作しますが、あなたはそれがより速く動作したいですか?

  1. 3番目の例の表では、ヘルパー(別名インデックス)表を使用してデータに正しく参加していると思います。これは、元のデータセットにレコードがない場合にProj 1, Org 1, Blackの行がある理由を説明します。内部結合はそれを修正しますが、それがプロセスで他の問題を引き起こさないことを確認します。
  2. IDでグループ化する代わりに、Proj、Orgなどでグループ化するための連結フィールドを1つ作成することができます。つまり、GroupBy=[ID]&[Proj]&[Org]です。 1つのグループ化レベルしかないので、これは少し速くなります。
  3. あなたのタグに基づいて、私はあなたのデータソースはSQL Server 2008だと思っています。クエリから抜け出している場合は、代わりに一時的な静的テーブルを作成してみてください。それはクリスタルのためのものをかなり単純化します。

(これらの提案の一つが役に立つ場合は、どちらを教えてください。)

+0

私は2と3の組み合わせと一緒に行った私は実際に私のクエリにメモフィールドを追加し、合わせたセットに入れますそれぞれのデータの重複は多数ありますが、一度だけ発生し、サブレポートの必要性がなくなります。しかし、私はコメントに絵を表示することはできないと思う。 – thursdaysgeek

関連する問題