查找不同的树层次结构

时间:2016-11-04 13:17:59

标签: tsql sql-server-2005

我有以下表和关系的数据库:

Trunk (1..n)    Branch (1..n)   Twig (0..n) Leaf

Branch,Twig和Leaf有类似的列。 例如,Twig有列:

id, branchID, name, description, key1, key2, key3

我不关心姓名和描述,但我关心关键1 - 3

我的目标是找到不同的树结构(或层次结构),并获得遵循相同树配置的中继ID。

相同的树配置意味着:

  • 每个Trunk具有相同数量的分支(1-n)
  • 分支具有相同的键值(但可以具有不同的名称和描述)
    • 每个分支具有相同数量的细枝(1-n)
    • Twigs具有相同的键值(但可以有不同的名称和描述)
      • 每个Twig具有相同数量的Leafs(0-n)
      • Leaf具有相同的键值(但可以具有不同的名称和描述)

当我加入所有表(Trunk,Branch,Twig和left join Leaf)并按相关键值对它们进行分组时 我只获得共享特定Trunk-to-Leaf组合的Trunk,但它们可能在另一个分支中有所不同(或完全错过)

现在我有500个中继线,而可能只有8种不同的树配置。

我的预期结果是:TrunkID - TreeConfiguration(1 - 8)

0 个答案:

没有答案