Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
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
Đâ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 ý!