【发布时间】:2016-01-12 02:47:05
【问题描述】:
在 Microsoft SQL Server 2008 R2 中,我试图从一个表中查询记录,该表将作业步骤的开始和结束时间记录为时间戳列,在错误日志表的时间戳列的 30 秒内。错误日志表仅将错误事件记录为标识列,并将事件的日期/时间记录为时间戳,它不包含对导致错误的事件的任何引用。
这是我写的查询(我只需要上周内的记录,因此我的第一个选择语句,它工作得很好):
SELECT
js.job_name, js.start_time, js.end_time
FROM
job_step AS js
WHERE
js.end_time > Dateadd(day, -8, Getdate())
AND Datediff(ss, (SELECT el.err_timestamp
FROM error_log AS el), js.end_time) < 31
在我添加第二个选择之前,一切正常,但是当我添加该选择时,我收到此错误:
消息 512,第 16 级,状态 1,第 1 行
子查询返回超过 1 个值。当子查询跟随 =、!=、 >、>= 或子查询用作表达式时,这是不允许的。
注意——我不是开发人员,我是产品分析师,但比许多非开发人员对 sql 的掌握要好;也就是说,请记住在您的回复中我不是开发人员/编码人员。
【问题讨论】:
标签: sql sql-server-2008-r2 timestamp