台灣最大程式設計社群網站
線上人數
648
 
會員總數:245627
討論主題:189322
歡迎您免費加入會員
討論區列表 >> MS SQL >> 擷取循環資料
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
擷取循環資料
價值 : 100 QP  點閱數:247 回應數:6
樓主

小佑
初學者
20 13
419 17
發送站內信

捐贈 VP 給 小佑
在電腦上執行某隻程式, 這隻程式每小時會記錄運行天數.
原則上每運行7天會重新開機一次, 並重新計算運行天數.
另外遇到電腦當機重新開機後, 並重新計算運行天數.

我的問題是要如何去擷取當下還沒有運行到一次循環資料及上次一個循環資料.

資料表如圖片網址

搜尋相關Tags的文章: [ SQL 循環 ] ,
本篇文章發表於2020-01-21 17:09
1樓
作者回應

小佑
捐贈 VP 給 小佑 檢舉此回應
補充=> 結果想要如附圖
本篇文章回覆於2020-01-21 17:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小佑
捐贈 VP 給 小佑 檢舉此回應
補充=> 結果想要如附圖
本篇文章回覆於2020-01-21 17:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓

declare @i int= 1
WHILE @i<= 31
BEGIN

select @i,7-(@i%7)
SET @i = @i + 1
END
本篇文章回覆於2020-01-22 06:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

小佑
捐贈 VP 給 小佑 檢舉此回應
真的有點難 您好, 簡單來說 利用RUNDAY欄位做判斷, 而GROUP這欄位從1開始, RUNDAY欄位直到下一個欄位不為0時, GROUP欄位就變成2,
本篇文章回覆於2020-01-22 11:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
您的問題是 EXCEL 或SQL (Excel 請參考您另一個發問)

SQL 的話 假設資料已讀到 DT1
dim Group as integer =1

for rowii as integer =1 to dt1.rows.count -1
if dt1.rows(rowii)("runday") > dt1.rows(rowii-1)("runday") then
group +=1
end if
dt1.rows(rowii)("group")=group
next
本篇文章回覆於2020-01-22 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

真的有點難
檢舉此回應
您可以把迴圈 由數字改為日期

declare @i int= 1
declare @d datetime=getdate()
WHILE @i<= 31
BEGIN

if @i%7=1
begin
...........
end
if @i%7=2
begin
.........
end

SET @i = @i + 1
SET @d = @d + 1
END


.....代表你要做的事情
本篇文章回覆於2020-01-22 13:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.