30/09/2018, 20:46

Truy vấn lấy ra 2 bản ghi = nhau(chưa biết trước giá trị) trong sql

câu hỏi

lấy ra thông tin của khách hàng có số hóa đơn mua hàng nhiều nhất

trương hợp có >2 khách hàng có số hóa đơn mua lớn nhất = nhau

nếu sử dụng hàm max(sohoadon) thì chỉ lấy ra được 1 khách hàng
nếu
sử dụng top 1 thì cũng chỉ lấy ra được 1 người
nếu sử dụng top x, với x là số ng cần lấy ra, thì k thể biết trước số người có cùng giá trị max để đặt x = 1 số cụ thể

sử dụng top 
        USE KHACHHANG
        GO
        SELECT TOP 1 SHD.MAHD 
        FROM
        (
        SELECT CHITIETHOADON.MAHD, COUNT (CHITIETHOADON.MAHD) AS SOHOADON
        FROM CHITIETHOADON
        GROUP BY CHITIETHOADON.MAHD
        ) AS SHD
        ORDER BY SOHOADON DESC

sử dụng max 

    USE KHACHHANG
    GO
    SELECT MAX(SOHOADON)
    FROM
    (
    SELECT CHITIETHOADON.MAHD, COUNT (CHITIETHOADON.MAHD) AS SOHOADON
    FROM CHITIETHOADON
    GROUP BY CHITIETHOADON.MAHD
    ) AS SHD

thì phải làm sao nhỉ
vậy phải làm thế nào để lấy ra được 1 khác hàng có cùng giá trị sohoadon lớn nhất = nhau
xincamon

lược đồ quan hê

trương hợp trung nhau về số lượng hóa đơn ,đều là lớn nhất

Minh Hoàng viết 22:52 ngày 30/09/2018

Cho biết những khách hàng có số hóa đơn bằng với người có nhiều số hóa đơn nhất.

abcxyz viết 22:48 ngày 30/09/2018

phải subquery thêm vài lớp rồi

abcxyz viết 22:46 ngày 30/09/2018

bạn cho mình hỏi, để có được SOHOADON trong bảng trên mình đã subquery rồi mới tìm được
chứ k phài dữ liệu nhập vào như thế
giờ tìm ra các mã hóa đơn ở trong bảng CHITITETHOADON có SOHOADON đã mua = số của khách hàng cao nhất thì ntn nhỉ

bảng CHITIETHOADON

Giờ mình cần tìm MAHD sao đó MAHD đó có sô lượng hóa đơn đã mua = số của ng cao nhât
nhưng chỗ tìm ra số lượng hóa đơn đã mua = số max mình rối quá

tìm ra số lượng hoa đơn đã mua cao nhât

SELECT MAX(SOHOADON)
	FROM
	(
		SELECT  COUNT (CHITIETHOADON.MAHD) AS SOHOADON
		FROM CHITIETHOADON
		GROUP BY CHITIETHOADON.MAHD
	) AS SHD

bây giờ đã có max, vậy làm sao để tim ra mã hd có số hóa đơn đã mua = max
với số hóa đơn đã mua của từng mã HD ở trong bảng sau

SELECT  COUNT (CHITIETHOADON.MAHD) AS SOHOADON
		FROM CHITIETHOADON
		GROUP BY CHITIETHOADON.MAHD
abcxyz viết 22:53 ngày 30/09/2018


MÌNH LÀM ĐƯỢC RÒI, TKS BẠN

Bài liên quan
0