【发布时间】:2011-04-01 04:02:20
【问题描述】:
在上一个问题中,你们帮助我从不同的行中获取数据。我使用的语句在 MS SQL Server Management 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
【问题讨论】:
-
程序中的sql如何执行?
-
我将在 MS SQL Studio 2005 中正确执行的代码复制并粘贴到我们的 Cisco 前端程序中。我收到无效查询的错误代码。关键字 WHERE 附近的错误。这很奇怪,因为我在语句中没有 WHERE 子句。我尝试在语句中添加一个空白和一个有效的 where 子句,但这只会导致程序挂起。没有给出错误代码。
-
这听起来像是你的前端程序修改东西的问题?如果您将所有查询放到一个视图中,然后尝试在前端程序中从中选择呢?
-
不说了。我对数据库的任何部分都没有写入权限。