Mình nghĩ cách này hay hơn nè
;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:
Announcement
Collapse
No announcement yet.
Bài tập SQL khó cần người giải đây !
Collapse
X
-
Được chứ, nhưng chắc sẽ khó hơn dùng NOT EXISTS, bạn thử xem, cũng là một cách làm mới
Leave a comment:
-
Originally posted by 10520272 View PostCách giải trên rất hay (và khuyến khích dùng) nhưng phải xài bảng tạm, mình có làm cách khác không dùng bảng tạm nhưng có vẻ sẽ chạy chậm hơn cái trên --> (không khuyến khích dùng :x).
Code: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)) )
Originally posted by 10520430 View PostCâu làm bảng tạm mình hiểu rồi, rất cảm ơn bạn 08520467 . À bạn 10520272 ! Bạn có thể giải thích rõ hơn cho mình chỗ giải not exists của bạn được không !? Cảm ơn bạn rất nhiều
Leave a comment:
-
Câu làm bảng tạm mình hiểu rồi, rất cảm ơn bạn 08520467 . À bạn 10520272 ! Bạn có thể giải thích rõ hơn cho mình chỗ giải not exists của bạn được không !? Cảm ơn bạn rất nhiều
Leave a comment:
-
Cách giải trên rất hay (và khuyến khích dùng) nhưng phải xài bảng tạm, mình có làm cách khác không dùng bảng tạm nhưng có vẻ sẽ chạy chậm hơn cái trên --> (không khuyến khích dùng :x).
Code: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)) )
Leave a comment:
-
Từ bảng SANPHAM, truy vấn danh sách các nước và giá lớn nhất của từng nước thành một bảng tạm, rồi kết bảng tạm này với bảng SANPHAM
Code: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
Last edited by 08520467; 19-12-2011, 22:57.
Leave a comment:
-
Bài tập SQL khó cần người giải đây !
Có bảng sau : SANPHAM(TENSP,DVT,NUOCSX,GIA)
với câu hỏi: Viết SQL với mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất.
Rất nhiều vấn đề quanh câu hỏi này !?Tags: None
Leave a comment: