0
SET @startdate = (select LOG_TIME from log.time where sender='Japan' and receiver ='USA' and code=158);

SET @enddate = (select LOG_TIME  from log.time where sender='Japan' and receiver ='USA' and code=189);

select * from log.time where  DATEDIFF(minute, @startdate, @enddate) >= 10;

在这里,我想使用 2 个变量(@startdate 和 @enddate),其中填充了来自使用的选择查询的多个条目。

最后一行,我希望选择查询返回一个记录列表,其中 DATEDIFF 函数大于或等于 10 分钟,方法是使用这两个具有多个值的变量。

PS 我使用的是 Squirrel SQL Client 2.3 )

问题是我不知道是否可以对变量使用多个值。

还请就上述问题提出建议或提供任何解决方案,以使查询最终有效。

4

1 回答 1

0

您不能以这种方式使用变量。

现在很难确定没有看到您的表架构和示例数据,但是您应该能够使用这样JOIN的查询来做您想做的事情

SELECT l1.* 
  FROM log.time l1 JOIN log.time l2
    ON l1.sender = l2.sender
   AND l1.receiver = l2.receiver
   AND l1.code = 158
   AND l2.code = 189
 WHERE l1.sender = 'Japan'
   AND l1.receiver = 'USA'
   AND DATEDIFF(minute, l1.log_time, l2.log_time) >= 10

如果您要提供表架构、示例数据和所需的输出,那么就可以测试您的查询

于 2013-07-01T06:42:16.097 回答