2015-02-06 107 views
1

我構建有pyramidbinary tree概念SQL Server項目...SQL建模金字塔或二叉樹

我要去嘗試使用一些表解釋!

第一張表是

TB_USER(ID,ID_FATHER,左/右樹中的位置)

用戶可以賣producs!所以當他們出售時,他們可以獲得積分然後,第二表是

TB_SELL(ID_USER,ID_PRODUCT,POINT)

因此,我想在我下面的每個客戶端的點的報告格式見二進制模式樹。我怎樣才能設計這些表格,讓我的生活更輕鬆?我會永遠讓我的soons高達9層。

我知道用程序我可以解決這個問題,但我想知道一個優雅和簡單的解決方案。

謝謝

+0

請在CTE的一些研究。你用什麼報告工具來表示這個? SSRS? SSMS? – 2015-02-06 05:07:38

+1

您也可能希望對SQL Server中的hierarchyid數據類型進行圓頂研究。這可能會或可能不會有用。 – 2015-02-06 05:08:41

回答

2

我解決這個使用了遞歸查詢:

with with_user_earns as (
    -- get father information (start) 
    select father.id, father.str_name, father.id_father, father.ind_father_side_type, 1 as int_user_level from tb_user father where id = 9 
    union all 
    -- get all soons (stop condition) 
    select son.id, son.str_name, son.id_father, son.ind_father_side_type, WUE.int_user_level + 1 from tb_user as son inner join with_user_earns as WUE on son.id_father = WUE.id where son.id_father is not null /*and WUE.int_user_level < 9*/ 
) 

-- show result 
select with_user_earns.id, with_user_earns.str_name, with_user_earns.id_father, with_user_earns.ind_father_side_type, with_user_earns.int_user_level from with_user_earns order by with_user_earns.int_user_level, with_user_earns.id 
+1

適合我!韓國社交協會! – Marabita 2015-02-08 17:27:51