ورود

View Full Version : آمار کلی از تمامی زیرمجموعه ها



komeil64
یک شنبه 17 فروردین 1393, 17:28 عصر
سلام
من دو تا جدول tbl_Cats و tbl_Contents دارم
جدول Tbl_Cats شامل موضوعاته که با ParentID زیر مجموعه ها مشخص میشن مثلا به این صورت


ParentID
Name
ID


0
سیاسی
1


0
اجتماعی
2


1
داخلی
3


1
خارجی
4


3
خراسان
5




در جدول tbl_Contents هم یه سری مطالبه که با فیلد CatID مشخصه مربوط به کدوم یکی از موضوعات بالاست
فرض کنیم توی موضوع سیاسی 3 تا مطلب ، داخلی 1 مطلب و خارجی 2 مطلب و خراسان 1 مطلب باشه
بصورت پیش فرض راحت میشه مثلا گفت موضوع شماره 3 شامل یک مطلبه
اما من می خوام مثلا وقتی موضوع سیاسی رو در بخش آمار انتخاب کردیم تعداد مطلبای خودش + تعداد همه مطلبای موضوعات زیر مجموعش مشخص بشه یعنی Count سیاسی بشه 3+1+2+1

ممنون میشم راهنمایی کنید

tooraj_azizi_1035
دوشنبه 18 فروردین 1393, 20:20 عصر
سلام
شما چون شما hierarchyid استفاده نکردید می تونید از کوئری بازگشتی cte استفاده کنید.

;WITH ret AS(
SELECT *
FROM Tbl_Cats
WHERE ID = @ID
UNION ALL
SELECT t.*
FROM Tbl_Cats t INNER JOIN
ret r ON t.ParentID = r.ID
)

select count(*) from tbl_Contents
where CatID IN (
select ID from ret

)

@ID میشه آی دی شاخه ای که کلیک شده.