-- 查詢時間段內的所有數據,並更新當天的評論數
DECLARE @startday datetime
DECLARE @endday datetime
-- SET @startday = convert(varchar(10),dateadd(dd,-2,getdate()),120) --前天
-- SET @endday = convert(varchar(10),dateadd(dd,-1,getdate()),120) --昨天
SET @startday = '2019-11-09'
SET @endday = '2019-12-01'
--申明遊標爲Uid
DECLARE @temp bigint
DECLARE ids CURSOR
FOR (SELECT Id FROM craw_product WITH(nolock) WHERE CreateTime > @startday AND CreateTime < @endday )
--打開遊標--
OPEN ids
--開始循環遊標變量--
FETCH NEXT FROM ids INTO @temp
--返回被 FETCH語句執行的最後遊標的狀態--
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE craw_product SET CommentCount = (
SELECT COUNT(1) AS Total FROM craw_product_comment WITH(nolock)
WHERE Pid = (SELECT TOP 1 Pid FROM craw_product WITH(nolock) WHERE Id = @temp)
AND DATEDIFF(DAY, CommentTime, (SELECT TOP 1 CreateTime FROM craw_product WITH(nolock) WHERE Id = @temp)) = 0
)
WHERE Id = @temp
FETCH NEXT FROM ids INTO @temp --轉到下一個遊標
END
--關閉遊標
CLOSE ids
--釋放遊標
DEALLOCATE ids