SQL Server 2008で親子関係を構築しようとしていますが、動作させるのが難しいです。多くの多くの親子関係
Preset(ルートレベルのノード)があり、PresetItems(子ノード)があります。
AプリセットのみPresetItemsを含めることができますが、PresetItemsは、子ノードとして他のPresetItemsを含めることができます。
多くのプリセットは、彼らが含まれているPresetItemsに変化することに構築することができます。
PresetItemsは異なるプリセット構成を構築するために、多くの異なるプリセットで再利用することができます。
これは、動的にレポートを作成する方法です。 Presetはレポートの名前です。 PresetItemは、レポートのさまざまな部分です。これらの部分(PresetItem)は、「Year to Date Graph」などのレポートのセクションのようになります。このPresetItemにはテキストの説明が含まれ、グラフを含む別のPresetItemをこのPresetItemセクションの子として追加できます。
このプロセスは、レポートのすべての部分が組み立てられるまで続きます。ここで
は例示である:
Client "A" Report (Preset 1)
-- Overview (PresetItem 1) - contains boilerplate and maybe some dynamic data
-- YTD Report (PresetItem 2) - contains boilerplate
-- YTD Graph (PresetItem 3) - contains a graph created dynamically from SQL Server data
-- Core References (PresetItem 4) - contains a table of dynamic data
-- Summary (PresetItem 5) - contains boilerplate
Client "B" Report (Preset 2)
-- Overview (PresetItem 1) - contains boilerplate and maybe some dynamic data
-- Monthly Balance Sheet (PresetItem 8) - contains dynamic data
-- YTD Report (PresetItem 2) - contains boilerplate
-- YTD Graph (PresetItem 3) - contains a graph created dynamically from SQL Server data
-- Summary (PresetItem 5) - contains boilerplate
...等...
あなたは、いくつかのPresetItemsは、多くの異なるレポートまたはプリセットに組み立てることができることに気づくでしょう。
この
は、私は私のデータベーステーブルを構築してきた方法であり、多対多のテーブルに2つの主キーがあるので、私は親子関係を作成することはできませんよ。Preset Table
-- Id (key)
-- Name
PresetItem Table
-- Id (key)
-- Name
-- Description
-- DataResource
-- (other columns)
PresetPresetItem (many-to-many table)
-- PresetId (key)
-- PresetItemId (key)
-- ParentId
-- SortOrder
私は正しい結果を得るために私が探しているのですか? PresetItemIdとParentIdの間のPresetPresetItemテーブルに親子関係を作成することができません。なぜなら、他の主キー(PresetId)を省略していると言うからです。
私はそれがこれをやっている理由を理解して、私はちょうど今それを修正する方法を見つけ出すことはできません。私が間違ったことをしているなら、私に知らせてください。
何か助けていただければ幸いです。
ありがとうございました。
提案していただきありがとうございます。私はそれを打ち、何が起こるか見る。ところで、私はSQL Server 2008を使用しています。 – Kahanu
実際にあなたの提案について考え直しても、この場合はうまくいかないようです。あなたの提案はプリセットに1つのPresetItemしか含まず、プリセットアイテムをいくつでも含む必要があります。私はいくつかの一時テーブルを作成し、私は必要な結果を返すSQL文を作成することができませんでした。 – Kahanu
Aha。答えを修正する。 –