前の質問で、皆さんは私が別の行からデータを取得するのを手伝ってくれました。私が使用しているステートメントは、MS SQL Server Managment Studio で完全に機能します。エラーなしでステートメントを実行でき、必要なデータを返します。ただし、このデータをフロントエンド プログラムで実行する必要があります。このプログラムでステートメントを実行しようとすると、ハングします。このステートメントの「With As」の部分が問題を引き起こしているように感じます。この一時テーブルをサブクエリに入れて、このステートメントを書き直す方法はありますか?
WITH Temp1 AS (SELECT
SkillTargetID = Agent_Logout.SkillTargetID,
LogoutDateTime = Agent_Logout.LogoutDateTime,
LogonDate = DateAdd(s,-1 * Agent_Logout.LoginDuration,Agent_Logout.LogoutDateTime),
ROW_NUMBER() OVER(PARTITION BY Agent_Logout.SkillTargetID ORDER BY Agent_Logout.LogoutDateTime ASC) RowVersion,
LoginDuration = Agent_Logout.LoginDuration
FROM Agent_Logout)
SELECT
AgentID = Base.SkillTargetID,
LogonDate = Base.LogonDate,
BaseLogout = Base.LogoutDateTime,
BaseDuration = Base.LoginDuration,
NextLogon = Temp1.LogonDate,
LogoutDuration = DateDiff(s,Base.LogoutDateTime,Temp1.LogonDate)
FROM Temp1 Base
LEFT JOIN Temp1 ON Base.SkillTargetID = Temp1.SkillTargetID
AND Base.RowVersion = Temp1.RowVersion-1