第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL語句優(yōu)化(連續(xù)簽到獎勵疊加問題)

SQL語句優(yōu)化(連續(xù)簽到獎勵疊加問題)

犯罪嫌疑人X 2018-08-13 07:10:04
查詢連續(xù)簽到日期,每次簽到獎勵加1,獎勵達(dá)到8個就不在增加(一直保持每次簽到給8個)。要求在sql語句中拼接出昨日,今日,以及后4日的簽到日期所對應(yīng)的獎勵。目前的sql語句如下(這種寫法要創(chuàng)建和刪除臨時表有沒有好的寫法)DECLARE @now DATETIME = GETDATE() ,@count INT ,@i INT= 0;SELECT @count = COUNT(*)FROM ( SELECT DATEDIFF(DAY, CreateTime, @now) a , --簽到時間對比今天的差值ROW_NUMBER() OVER ( ORDER BY CreateTime DESC ) b --排序字段 FROM T_SignRecordWHERE UId = @UIdAND DATEDIFF(DAY, CreateTime, @now) > 0 --排除今天的簽到記錄 ) TWHERE a = b;CREATE TABLE #temp --創(chuàng)建臨時表(CreateTime DATETIME ,SignRewardCount INT);WHILE @i < 6BEGIN INSERT INTO #temp( CreateTime ,SignRewardCount)VALUES ( DATEADD(dd, @i, DATEADD(dd, -1, @now)) ,CASE WHEN @count = 0 THEN @iWHEN ( @count + @i ) > 8 THEN 8ELSE @count + @iEND);    SET @i = @i + 1;END;SELECT *FROM #temp;DROP TABLE #temp;--刪除臨時表
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊

換個思路吧,雖然sql可以做這個,但做起來會很吃力

你直接把相關(guān)簽到記錄取出來在程序里面掰不光在寫起來會簡單很多,性能也會好些


查看完整回答
反對 回復(fù) 2018-08-23
  • 1 回答
  • 0 關(guān)注
  • 1049 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號