我有一個日志檔案tblktime,其中包含 "Ourfile "的所有活動。已經創建了第二個匯總表tblktimefst(每個我們的檔案有一條記錄),以捕獲日志檔案中特定代碼的首次出現,并匯總該我們的檔案的第一條記錄和它出現在tblktime日志中的'持續時間'列。('LSF'的第一次出現被存盤為fstLSFBtime。)
我的Select陳述句是:"我們的檔案"。
我寫的Select陳述句準確地回傳了唯一的id欄位'Ourfile'和正確的總和'TotDur',我想把它更新回tblktimefst.fstLSFDurSum
。SELECT DISTINCT
ktf.ourfile。
SUM(CASE WHEN kt.btime <= ktf. fstlsfbtime THEN kt.duration ELSE 0 END) AS TotDur
FROM
tblktime kt
INNER JOIN
tblktimefst ktf ON ktf.ourfile = kt.ourfile
AND kt.btime <= ktf.fstLSFBtime
GROUP BY
ktf.ourfile
SQL服務器回傳:
| Ourfile | TotDur | 。|||
|---|---|---|---|---|
| 47661 | 48 | |||
| 50265 | ||||
| 50265 | 48 | 36453? | 13 | |
| 13 | ||||
| 38270? | 54 | 39730? | 27 | 46156 |
| 46156 | 190 | |||
| 190
| 37392? | 46 | 51905? | 25 |
| 25 | 以此類推 | |||
我想在tblktimefst中更新的列是fstLSFDurSum,用于其唯一的'Ourfile'記錄。我無法獲得正確的語法來做到這一點,希望我已經提供了足夠的資訊,以便有人能夠提供幫助。
如果我能夠正確掌握這個語法,那么我也應該能夠完成其他代碼之間的持續時間總結。
預先感謝你。
uj5u.com熱心網友回復:
怎么樣(未經測驗):
UPDATE tblktimefst
SET fstLSFDurSum = TotDur
FROM tblktime t2
INNERJOIN
(
select distinct
ktf.ourfile。
SUM( CAse when kt.btime <= ktf. fstlsfbtime then kt.duration else 0 end) as TotDur
from tblktime kt
Inner JOIN tblktimefst ktf on ktf。 我們的檔案 = kt.ourfile and kt.btime <= ktf.fstLSFBtime
group by ktf.ourfile) x ON x.ourfile = t2.ourfile
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/332032.html
標籤:
