PDA

View Full Version : Tính tổng số một id của danh mục



danchoithuthiet
15-02-2012, 19:18
Mình có hai bảng, một là bảng <b>danhmuc</b> và <b>danhmuc_menu</b>. Trong đó, danhmuc_menu liên kết với danh mục thông qua <b>danhmuc.iddanhmuccap2=danhmuc_menu.iddanhmuc_menu</b>

Cụ thể là:
1. danhmuc_menu(<b><i>iddanhmuc_menu</i></b>,vitridanhmuc_menu,danhmuc_cha). iddanhmuc_menu là khóa chính. Bảng này lưu trữ thông tin của danh mục cấp 1 và cấp 2, với cấp 1 thì danhmuc_cha bằng 0 (có vị trí danh mục là menu hay tintuc), còn danh mục cấp 2 có danh mục danhmuc_cha là những iddanhmuc_menu có danhmuc_cha!=0 và có vị trí danh mục là rỗng.

ví dụ:


(iddanhmuc_menu,vitridanhmuc_menu, danhmuc_cha)
( 13, menu, 0)
( 14, menu, 0)
( 20, NULL , 13)
( 30, NULL, 13)
( 35 , NULL , 14)

2.danhmuc(<b><i>iddanhmuc</i></b>,iddanhmuccap2,idthanhvien). iddanhmuc là khóa chính. Bảng này liên kết với danhmuc_menu thông qua iddanhmuccap2. Và liên kết với danh mục cấp 2

ví dụ


(iddanhmuc, iddanhmuccap2, idthanhvien)
(123, 20, ABC)
(124, 20, ABC)
(125, 30, BCD)
(126, 35, ABC)

Bây giờ, làm như thế nào để có thể lấy tính tổng số iddanhmuc (trong bảng danhmuc) của thành viên ABC có và vitridanhmuc_menu="menu".Mình đã thử viết nhưng không thành công:



Select danhmuc_cha as cha, count(iddanhmuc)
From danhmuc join danhmuc_menu on danhmuc_menu.iddanhmuc_menu=danhmuc.iddanhmuc
Where idthanhvien='ABC' and danhmuc_cha!=0 and (select vitridanhmuc_menu from danhmuc_menu where iddanhmuc_menu=cha)='menu'
Group by danhmuc_cha


hay



Select danhmuc_cha as cha, sum(case (select vitridanhmuc_menu from danhmuc_menu where iddanhmuc_menu=cha) when 'menu' then 1 else 0 end)
From danhmuc join danhmuc_menu on danhmuc_menu.iddanhmuc_menu=danhmuc.iddanhmuc
Where idthanhvien='ABC' and danhmuc_cha!=0
Group by danhmuc_cha


Mong các bạn giúp mình với, mình chịu thui rùi

tamngam.com
15-02-2012, 19:40
mấy h rồi con chia thành 2 ntn :(
Bạn có thể up hình chụp diagram lên ko ạ
Thế sẽ hình dung hơn.

danchoithuthiet
16-02-2012, 19:34
mấy h rồi con chia thành 2 ntn :(

Lúc đó do mạng nhà mình có trục trặc, nên mình tưởng chưa up bài xong nên up lần 2, ai ngờ...2`

Hình mình add thêm rùi đó, u coi xong rùi giúp mình nha.

tamngam.com
16-02-2012, 19:42
pm yahoo lex_mister nhé c.
Vì thực sự nhìn vào mình ko phân biệt được danhmuc và danhmuc_menu của c là ý gì :d.
T sẽ cố giúp cho :D