Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
到目前为止的SQL查询秒数(Ssms12)_Sql_Sql Server_Ssms_Ssms 2012 - Fatal编程技术网

到目前为止的SQL查询秒数(Ssms12)

到目前为止的SQL查询秒数(Ssms12),sql,sql-server,ssms,ssms-2012,Sql,Sql Server,Ssms,Ssms 2012,在fount Thad的stackoverflow站点上,选择CONVERT(字符(10),DATEADD(秒,最大值(60),0),108)将导致00:01:00(顺便说一句,这是正确的:-) 现在我想将其集成到以下查询中(针对Ssms12): 不管我怎么做,我都无法在上面的例子中实现这一点,有人知道如何解决这个问题吗 错误:列“Run.TaskName”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。您必须按未使用聚合函数的其他列进行分组: SELECT Run.TaskN

在fount Thad的stackoverflow站点上,选择CONVERT(字符(10),DATEADD(秒,最大值(60),0),108)将导致00:01:00(顺便说一句,这是正确的:-)

现在我想将其集成到以下查询中(针对Ssms12):

不管我怎么做,我都无法在上面的例子中实现这一点,有人知道如何解决这个问题吗


错误:列“Run.TaskName”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

您必须按未使用聚合函数的其他列进行分组:

SELECT Run.TaskName,history.runtime,
   CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
您正在使用MAX for runtime,因此可以执行以下操作:

SELECT Run.TaskName,MAX(history.runtime) runtime,
    CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
GROUP BY Run.TaskName

这意味着您必须从运行时删除MAX,或者必须对其余列使用group by。

确保您有必要的权限运行表,并使用完全限定表(如以下所示),前提是该表存在并且您有必要的权限读取表

SELECT Run.TaskName,history.runtime
      ,CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history 
INNER JOIN dbo.Run
    ON dbo.history.TaskID=dbo.Run.TaskID

最有可能的情况是您不需要最大值。
选择CONVERT(字符(10)、DATEADD(秒,60,0)、108)
就可以了,所以

SELECT Run.TaskName,history.runtime
      ,CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history 
INNER JOIN dbo.Run
    ON dbo.history.TaskID=dbo.Run.TaskID

tx:-)MAX是个问题,因为我不想加入团队,我希望我能找到Thad本人,tx寻求帮助
SELECT Run.TaskName,history.runtime
      ,CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history 
INNER JOIN dbo.Run
    ON dbo.history.TaskID=dbo.Run.TaskID