Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Làm sao để lấy 5 tên sản phẩm được bán nhiều nhất.

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Mặc định Làm sao để lấy 5 tên sản phẩm được bán nhiều nhất.


    Mình có 1 CSDL như trên, bây giờ mình muốn lấy 5 cuốn sách bán chạy nhất thì làm sao ?
    Mình viết câu lệnh sau, và kết quả là nó ra hình bên dưới.
    SELECT TOP 5 MaSP,Sum(SoLuong)
    FROM tbl_CHITIETBH
    GROUP BY MaSP
    ORDER BY Sum(SoLuong) DESC


    Mình muốn ở đây là kết quả thu được có cả TenSP và Gia (của tbl_SANPHAM).
    --------------------------------
    Bí quyết Steve Job (1200 cuốn đã được bán) (10000 VND)
    Cuốn 1 (700) (14000 VND)
    100 Ý tưởng (500) (20000 VND)
    Cuốn 2 (350) (24000 VND)
    Công dân toàn cầu (200) (30000 VND)
    --------------------------------

    Nếu bây giờ tại bảng tbl_CHITIETBH mình thêm vào 2 cột TenSP và Gia thì dễ rồi, ý mình muốn ở đây là giữ nguyên bảng dữ liệu như trên kia và xuất kết quả ra như ý mình. Mong các bạn giúp đỡ.

    Nhân tiện nhờ các bạn nhận xét giúp CSDL của mình chưa được chỗ nào, mình sẽ tiếp thu Cảm ơn các bạn!

  2. #2
    Ngày gia nhập
    10 2011
    Nơi ở
    Gò Vấp - HCM
    Bài viết
    9

    bạn chỉ cần thêm inner join qua table tbl_SANPHAM nữa là xong rồi

    Code:
    SELECT TOP 5 MaSP,Sum(SoLuong),sp.TenSP,sp.Gia
    FROM tbl_CHITIETBH ct
    INNER JOIN tbl_SANPHAM sp ON sp.MaSP = ct.MaSP
    GROUP BY MaSP
    ORDER BY Sum(SoLuong) DESC
    Nice day!
    Yahu': newmoon_04h

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Không được rồi bạn, nó báo lỗi Ambiguous column name 'MaSP','MaSP','SoLuong','SoLuong'

  4. #4
    Ngày gia nhập
    10 2011
    Nơi ở
    TP.HCM
    Bài viết
    115

    Select top 5 tensp,sum(soluong) as tongso
    from sanpham,hoadonct
    where hdct.msp=sp.msp
    groupby tensp
    order by sum(soluong) desc
    THIẾT KẾ WEBSITE CHUẨN SEO - GIÁ RẺ - CHẤT LƯỢNG - UY TÍN : webdepgiasoc.com

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Trích dẫn Nguyên bản được gửi bởi namnguyen1251 Xem bài viết
    Select top 5 tensp,sum(soluong) as tongso
    from sanpham,hoadonct
    where hdct.msp=sp.msp
    groupby tensp
    order by sum(soluong) desc
    Hôm qua hỏi mà quên mất, bạn giúp mình lấy luôn MaSP luôn nhé, vì mình muốn làm cái hyperlink đến trang detail.aspx cần có masp nữa. Thx bạn.

    Kiểu như Select TOP 5 MaSP,TenSP,Sum(SoLuong) as tongso.

  6. #6
    Ngày gia nhập
    03 2011
    Bài viết
    464

    Mặc định Làm sao để lấy 5 tên sản phẩm được bán nhiều nhất.

    Select Top 5 sp.MaSP,sp.TenSP, Sum(cthd.Soluong) as SL, sp.Gia
    From SanPham sp, ChiTietHoaDon cthd
    Where sp.MaSP=cthd.Masp
    Group by sp.MaSP,sp.TenSP,sp.Gia
    Order by Sum(cthd.Soluong) DESC
    bongda24h.tv

  7. #7
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Cảm ơn bạn, mình làm được rồi

Các đề tài tương tự

  1. Bài tập C Nhập một danh sách tên sau đó in ra tên họ, đếm xem có bao nhiêu tên họ Lý , Trần..()
    Gửi bởi trangbui trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 01-01-2013, 06:39 PM
  2. Thuật toán tìm 1 tên mà nhiều người trùng nhất trong danh sách n người.
    Gửi bởi Mr.Kutjs trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 24-09-2012, 08:56 AM
  3. Lập trình C Nhập Họ tên và tách nó ra 2 phần họ và tên riêng.
    Gửi bởi drak77 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 07-12-2010, 03:06 PM
  4. Tìm số phần tử lặp lại nhiều nhất
    Gửi bởi Vaanres trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 05-01-2010, 05:01 PM
  5. Tìm phần tử bé nhất của ma trận và đếm xem có bao nhiều phần tử bé nhất??
    Gửi bởi rong3sao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 03-04-2009, 10:14 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn