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

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.

1 Like

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

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

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?