ورود

View Full Version : گروه بندی رو دیتا سلسله مراتبی Grouping Over Hierarchical Data



mazoolagh
یک شنبه 20 خرداد 1403, 13:30 عصر
سلام و روز خوش

من یک جدول (ساده شده) از یک سری داده سلسله مراتبی دارم
که در اون رابطه پدر-فرزندی به شکل ID , ParentID تعریف شده (معروف به مدل Adjacency List)



ParentID
ID


4
1


4
2


4
3


5
4


7
5


7
6


-1
7


11
8


11
9


11
10


-1
11


14
12


14
13


-1
14


-1
15


19
16


19
17


19
18


-1
19


22
20


22
21


26
22


26
23


26
24


26
25


-1
26


-1
27



و ParentID هر شاخه اصلی با (-1) مشخص میشه
یعنی IDهای 7 و 11 و 14 و 15 و 19 و 26 و 27 فرزندان سطح یک هستن (7 فرزند).

نیاز به یک کوئری دارم که یک ستون دیگه در کنار داده های اصلی بیاره
که در اون هر ID رو بر اساس این که در کدام شاخه اصلی هست گروه بندی کنه:




Group
ParentID
ID


1
4
1


1
4
2


1
4
3


1
5
4


1
7
5


1
7
6


1
-1
7


2
11
8


2
11
9


2
11
10


2
-1
11


3
14
12


3
14
13


3
-1
14


4
-1
15


5
19
16


5
19
17


5
19
18


5
-1
19


6
22
20


6
22
21


6
26
22


6
26
23


6
26
24


6
26
25


6
-1
26


7
-1
27




مهم نیست که این کوئری مستقیما از روی جدول اصلی ساخته بشه،
یا این که نخست چند کوئری (و جدول؟) میانی و کمکی بسازیم
و کوئری نهایی رو روی اونها بنا کنیم؛
خواسته این هست که (تا حد امکان) کد vba و recordset و ... استفاده نکنیم.

mazoolagh
یک شنبه 20 خرداد 1403, 13:36 عصر
برای راحتی دیتا و خروجی خواسته شده (به شکل جدول) رو پیوست میکنم.

mazoolagh
شنبه 26 خرداد 1403, 20:12 عصر
این رو با sql راحت میتونم انجام بدم (اگر کسی مایل هست میتونم پیوست کنم)،
ولی در اکسس واقعا راهی نمیبینم که بدون کدنویسی شدنی باشه.

پرسش مشابهی هم در آدرس زیر هست که راه حل اکسس براش پیدا نشد (بدون کدنویسی منظورم هست):
پیدا کردن مسیر یک گره در یک ساختار پدر-فرزندی Path of a node in a hierarchical table (https://barnamenevis.org/showthread.php?563684-%D8%AE%D8%A7%D8%B1%D8%AC-%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B2-%D8%AC%D9%86%D8%B3-%D8%AF%DB%8C%DA%AF%D8%B1&p=2462550&viewfull=1#post2462550)