[問題] Linq 巢狀查詢

作者: crazyexile (Silverblue)   2017-03-27 22:28:14
目前正在將手上的SQL查詢改寫成Linq
遇到巢狀查詢的問題一直轉不出來
還望板上的大大指點一下迷津
[問題描述]
資料表中有TimeStamp, Value兩個欄位
需要將查詢到的資料依照TimeStamp做累積
[SQL語法]
Select TimeStamp, (
Select SUM(Value)
From [Data] as E
Where E.TimeStamp >= D.TimeStamp
) as AccValue
From Data as D
Order by D.TimeStamp
作者: brian80122 (Cevi)   2017-03-28 04:09:00
括號內的d.timestamp是對的嗎可能我功力不夠 覺得這sql怪怪的 試試group吧
作者: awwseed (MOTO RIDER)   2017-03-28 16:07:00
作者: J002 (阿里山 我來了XD~)   2017-03-28 19:47:00
推awwseed大...
作者: crazyexile (Silverblue)   2017-03-28 21:27:00
感謝awwseed大大指點!! 今天用兩段式的方式試出來http://imgur.com/evi0Z7H 看起來似乎不是太好
作者: Litfal (Litfal)   2017-03-28 22:25:00
兩種都是O(n^2),重視效率的話建議不要這樣寫不對阿,你寫的只是group再sum而已,你只是要這樣?
作者: crazyexile (Silverblue)   2017-03-29 00:42:00
兩種寫法都可以達到我要的結果,不過我寫的似乎比較差
作者: Litfal (Litfal)   2017-03-29 01:32:00
你的看起來只是把每個相同時間的sum起來再輸出,awwseed大的才有把不同時間的累加起來阿
作者: awwseed (MOTO RIDER)   2017-03-29 11:24:00
http://imgur.com/SiumIBF 不知道改這樣有沒有比較好
作者: crazyexile (Silverblue)   2017-03-29 21:00:00
->Litfal http://imgur.com/a/JYK3r 應該是有累加的->awwseed 第一種寫法比較好理解!
作者: Litfal (Litfal)   2017-03-29 22:16:00
你那個是group sum,跟awwseed的不同時間累加不一樣

Links booklink

Contact Us: admin [ a t ] ucptt.com