PDA

View Full Version : سوال: آخرین Child



اوبالیت به بو
شنبه 09 آذر 1387, 20:30 عصر
سلام بر دوستان
من تویه یه دستور Select دچار مشکل شدم.
اگه این TreeView من باشه:


ماشین

پژو


405

206

پارس

هیوندا




Verna



Corola



پیکان

....

موتور

هیوندا


CG




bmw

...
حالا من می خوام یه Select بگیرم که آخرین سطح (آخرین فرزند) رو بدست بیاره. مثلاً پیکان فرزند نداره میشه یه مورد از لیست من. یعنی بیاد آخرین Child رو بدست بیاره.



Danke

hassanf
شنبه 09 آذر 1387, 21:05 عصر
سلام
Table رو به چه صورت پیاده سازی کردی؟
اگه با فیلدهای id , Parent و با یه جدول :



Select *
From Car
Where Id Not in (Select Parent
From Car)

واگه تعداد سطحی که Tree فرزند داره ثابته :


Select m3.*,
m1.Title + ' > ' + m2.Title + ' > ' + m3.Title As 'Describer'
From Car m1, Car m2, Car m3
Where m1.Id = m2.parent And
m2.Id = m3.parent

رضا عربلو
شنبه 09 آذر 1387, 22:26 عصر
اگر از اس کیو ال سرور 2005 استفاده می کنید می توانید از CTE recursion برای پیمایش ساختار درختی استفاده کنید. و با استفاده از یک متغییر level سطح هر عضو را بدست آورید.

AminSobati
یک شنبه 10 آذر 1387, 13:26 عصر
اگر از اس کیو ال سرور 2005 استفاده می کنید می توانید از CTE recursion برای پیمایش ساختار درختی استفاده کنید. و با استفاده از یک متغییر level سطح هر عضو را بدست آورید.

رضا جان پیمایش درخت برای بدست آوردن آخرین Level کار پر هزینه ای هست. آخرین Level رو میشه با این ترفند بدست آورد: همه رکوردهایی که ID اونها در هیچ رکوردی بعنوان Parent ذکر نشده. دقیقا مشابه Query که دوستمون پست کردند