Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Help Me!!!!!!!!!!!!!!! SQL Server

13:57 12-01-2018 460 lượt xem 1 bình luận 20:39 12-01-2018

Mn ơi, giúp mình với. Mình có 1 bảng dữ liệu gồm mã khách hàng và ngày mua hàng, nhóm hàng. 1 khách hàng có thể mua nhiều lần. Mình muốn xuất ngày mua gần nhất của ngày mua cho trước. Điều kiện là ngày mua liền kề ko tính mua hoa hồng Ví dụ: Ngyaf mua hàng là : 12/02/2017. Ngày mua liền kề (ko tính mua hoa hồng): 10/02/2017

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Kẻ Lạc Lối đã bình luận 20:36 12-01-2018

Đây là cái sườn em làm a/c Thảo tuỳ chỉnh lại chạy thử có vừa ý hông!

CREATE TABLE KH
(
    TEN Nvarchar(20),
    MAKH NVARCHAR(5),
    NGAYMUA date,
    NHOMHANG INT
)

DECLARE @Date date = GETDATE() --Thay bằng GETDATE() thành DATE cho trước

DECLARE @DateKQ date = GETDATE()

DECLARE DATEMIN CURSOR FOR SELECT dbo.KH.NGAYMUA FROM dbo.KH WHERE dbo.KH.NHOMHANG = 1 --1 Khác hoa hồng
OPEN DATEMIN
   
DECLARE @MIN INT = 99999
DECLARE @Ngay DATE

FETCH NEXT FROM DATEMIN INTO @Ngay

WHILE @@FETCH_STATUS = 0
BEGIN
    IF @Date - @Ngay < @MIN       --Đổi @Date  và @Ngay sang YEAR(), MONTH(), DAY() rồi làm thuật toán tính chênh lệch ngày
    SET @Min= @Date - @Ngay     --Tương tự sửa lại
    SET @DateKQ = @Ngay
    
    FETCH NEXT FROM DATEMIN INTO @Ngay
END

CLOSE DATEMIN

SELECT @DateKQ

Em mới học SQL có mấy buổi nên có gì sai xin mọi người góp ý!

Câu hỏi mới nhất