
;WITH TempTable(TenSP,DVT,NUOCSX,GIA,ThuTu)
AS
(
SELECT TenSanPham,DVT,NUOCSX,GIA,DENSE_RANK() OVER(PARTITION BY TenSanPham ORDER BY GIA) as ThuTu FROM SANPHAM
)
SELECT * FROM TempTable WHERE ThuTu=1 :salute:
SELECT SP.NUOCSX, SP.MASP, SP.TENSP FROM SANPHAM SP WHERE NOT EXISTS ( SELECT SP2.MASP FROM SANPHAM SP2 WHERE ((SP2.NUOCSX = SP.NUOCSX) AND (SP2.GIA > SP.GIA)) )
SELECT SP.NUOCSX, SP.MASP, SP.TENSP FROM SANPHAM SP WHERE NOT EXISTS ( SELECT SP2.MASP FROM SANPHAM SP2 WHERE ((SP2.NUOCSX = SP.NUOCSX) AND (SP2.GIA > SP.GIA)) )
SELECT SP.NUOCSX, SP.MASP, SP.TENSP FROM dbo.SANPHAM SP, (SELECT NUOCSX, MAX(GIA) AS MAXGIA FROM dbo.SANPHAM GROUP BY NUOCSX) T WHERE SP.NUOCSX=T.NUOCSX AND SP.GIA = T.MAXGIA
Leave a comment: