Sql server 在多行SQL Server之间比较日期

Sql server 在多行SQL Server之间比较日期,sql-server,Sql Server,首先,对不起我的英语不好,我是法裔加拿大人 我试图比较多个开始日期时间和结束日期时间之间的一个日期时间,但我的查询不起作用,SQL Server给了我这个错误:子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时 SELECT V.SampleTime, V.OrderNo, V.VNCCode, V.VNCDescription, V.NrOfOccurences, V.Comment FROM AV_RPT

首先,对不起我的英语不好,我是法裔加拿大人

我试图比较多个开始日期时间和结束日期时间之间的一个日期时间,但我的查询不起作用,SQL Server给了我这个错误:子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时

SELECT V.SampleTime,
       V.OrderNo,
       V.VNCCode,
       V.VNCDescription,
       V.NrOfOccurences,
       V.Comment
FROM AV_RPT_FQC_Visual V
INNER JOIN AV_RPT_PO_Header H
ON H.OrderNo=V.OrderNo
WHERE H.LinkUp IN (SELECT * FROM @iLinkupID) 
AND (V.NrOfOccurences > 0 or V.VNCCode = '00.00.00')
-- This part doesn't work --> AND SampleTime between (Select ShiftStart From @shifts) and (Select ShiftEnd From @shifts)
ORDER BY SampleTime, VNCCode
非常感谢

试试看
和SampleTime从@Shift开始选择MinShift和从@Shift开始选择maxShiftEnd之间基于您的评论,您可能需要尝试此操作。另外,我也是加拿大人:

AND EXISTS (Select 1 From @shifts ss WHERE V.SampleTime BETWEEN ss.ShiftStart AND ss.ShiftEnd)

@shift中的数据是什么?看起来您有多条记录。通常您希望使用子查询中查询的一列将ShfitStart值限制为相应的数据。@EricZ shifts表包含自2013年初以来每个班次的开始时间和结束时间。我需要在移位表中找到一个移位之间的每个采样次数。谢谢@user2957784,您能用一些示例数据更新您的问题并期望输出吗?“我还是很困惑。@埃里克斯,如果我不清楚,很抱歉。我有多个班次示例:开始时间:11/11/2013 22:59:00和结束时间:13/12/2013 23:59:59和采样时间示例:12/11/2013 05:12:32,我想知道我的采样时间在哪个班次。如果我有50000个班次,我想知道我的采样时间是否在其中一个班次,但问题是我可以有很多采样时间和很多班次。另一个例子:我的采样时间:11/11/2013 23:59:59。通过我的查询,我想知道它是否在我的数据库中转换,谢谢,如果您需要更多信息,请告诉我!