Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

GROUP BY trong MS SQL

8 năm trước 834 lượt xem 6 bình luận 8 năm trước

Chào mọi người, em có 1 table CUONSACH như sau:

và có dữ liệu mẫu sau:

Điều em muốn là SELECT để tìm ra tổng sách tính từ thời điểm bắt đầu nhập đến thời điểm năm đó(theo từng năm). Em đã cố gắng Group By:

nhưng kết quả đạt được là lượng sách được nhập theo từng năm.

Nhưng kết quả mà em muốn là tìm ra tổng sách tính từ thời điểm bắt đầu nhập đến thời điểm năm đó(theo từng năm):

Nhờ mọi người giúp đỡ, em cảm ơn nhiều ạ!

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
DG SuperAdmin, Author, KquizAdmin, KquizAuthor đã bình luận 8 năm trước

Câu truy vấn trên đúng rồi mà bạn, dữ liệu mẫu đang là 8 row, và mỗi năm 2 row. Nên kết quả ra z là đúng rồi còn j.

Cập nhật đáp án:

SELECT YEAR(s.NGAYNHAP), (	SELECT COUNT(s2.MASACH)
							FROM dbo.CUONSACH s2
							WHERE YEAR(s2.NGAYNHAP) <= YEAR(s.NGAYNHAP))
FROM CUONSACH s, GAYSACH
WHERE s.MAGAYSACH = GAYSACH.MAGAYSACH AND YEAR(s.NGAYNHAP)<= YEAR(CAST(CURRENT_TIMESTAMP AS DATE))
GROUP BY YEAR(s.NGAYNHAP)

 

Viet Anh đã bình luận 8 năm trước

Khi bạn đã GROUP BY theo năm như vậy thì nó chỉ xét trong năm đó thôi chứ có xét được ra năm ngoài đâu :) Bạn nên dùng cách khác để viết câu truy vấn cho mục đích đó ! Mình nghĩ nên dùng con trỏ :D Chúc bạn làm lại may mắn :))

Câu hỏi mới nhất