PDA

View Full Version : Câu lệnh truy vấn trong SQL



danchoithuthiet
03-10-2011, 16:20
Mình có hai bảng:

1 là bảng Sản_phẩm( idsanpham,tensanpham)
2 là bảng Phản_hồi(idphanhoi,idsanpham,visible)

Với - idsanpham trong bảng Phản_hồi là khóa ngoại của bảng Sản_phẩm
- visible có hai giá trị:

0 - Ẩn ( tương ứng comment không được hiển thị)
1 - Hiện ( tương ứng comment được hiển thị)

Giờ mình có một bài tập là viết câu truy vấn: Đếm xem 1 sản phẩm có bao nhiêu comment, bao comment được hiển thị và bao nhiêu comment không được hiển thị?

Đối với câu truy vấn tìm xem 1 sản phẩm có bao nhiêu comment thì mình làm được rùi nhưng còn hai câu sau thì mình chịu.

Các bạn giúp mình với. Thanks a lot

hangve.com
03-10-2011, 17:45
bạn chỉ cần chế lại câu trên bằng mệnh đề WHERE visible bằng 0 hoặc 1 là được mà :D
Tức là dùng count và WHERE có AND là được. hehe

danchoithuthiet
04-10-2011, 02:12
Không phải là viết trên từng câu mà chĩ viết 1 câu nhưng thỏa mãn hết tất cả yêu cầu cơ.
Nên như vậy mình mới bó tay. Hix

megaownage
04-10-2011, 20:59
Đầu tiên hết, nối hai bảng lại
Truy vấn, đếm số ph, đếm số ph vis, đếm số ph invis
để đếm số vis/invis, dùng lệnh case
Đương nhiên, để có thể đếm ý nghĩa, phải group lại

Lưu ý, phải dùng left join vì có hững sp không có phản hồi



select sp.idsanpham, sp.tensanpham,
count(ph.idphanhoi) soPhanHoi,
sum(case ph.visible when 1 then 1 else 0 end) phCoHienThi,
sum(case ph.visible when 0 then 1 else 0 end) phKhongHienThi
from SanPham sp left outer join PhanHoi ph on sp.idsanpham = ph.idsanpham
group by sp.idsanpham, sp.tensanpham


tb thiết kế gì mà dùng nửa tiếng Anh nửa tiếng Việt vầy nè trời!

danchoithuthiet
04-10-2011, 22:16
Oh, mình làm đc rùi. Cám ơn u rất nhiều

danchoithuthiet
09-10-2011, 23:27
Mà bạn megaownage cho mình hỏi, để tìm những câu lệnh SQL chuyện sâu hơn thì nên đọc sách hay ebook nào? Do trong lớp thì mình cũng chỉ về nó sơ sơ thui ko đi sâu, mà mình muốn tìm hiểu nhưng ko biết tìm sách nào hay cả? Bạn có thể giới thiệu mình được ko?

Thanks you very very much

ziza
10-10-2011, 10:09
google search : MSDN SQL SERVER Transact-SQL Language reference

megaownage
10-10-2011, 16:22
Ngày xưa tôi ra nhà sách mua một quyển Tự Học SQL nhỏ xíu, chẳng có gì đặc sắc. Đem về nhà bỏ công học từ đến cuối. Thế là nắm được phần căn bản. Tôi học hành theo nguyên tắc ăn chắc no dai.

Ba mớ ebook, language reference vv là về sau này, khi tiến vào lĩnh vực phức tạp.