Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server SQL中多条记录之间的日期差异_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server SQL中多条记录之间的日期差异

Sql server SQL中多条记录之间的日期差异,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个场景,如果两个日期之间的日期差为 您不能使用SELECT,它将返回函数需要标量值的多个值。。。但是,您可以联接这些表: SELECT COUNT(DISTINCT dt1.*) FROM DATE1_TABLE dt1 INNER JOIN DATE2_TABLE dt2 ON DATEDIFF(DD,DATE1,DATE2)<=14 此查询将仅在值在14天内时才根据这些值联接表,并根据DATE1_表中的唯一值进行计数。我不知道它是否是性能方面的。您可以在查询中使用TOP

我有一个场景,如果两个日期之间的日期差为
您不能使用SELECT,它将返回函数需要标量值的多个值。。。但是,您可以联接这些表:

SELECT 
  COUNT(DISTINCT dt1.*)
FROM DATE1_TABLE dt1 INNER JOIN DATE2_TABLE dt2 ON DATEDIFF(DD,DATE1,DATE2)<=14

此查询将仅在值在14天内时才根据这些值联接表,并根据DATE1_表中的唯一值进行计数。我不知道它是否是性能方面的。

您可以在查询中使用TOP 1子句

SELECT TOP 1 *
    FROM DATE1_TABLE 
     WHERE DATEDIFF(DD,DATE1,(SELECT DATE2 FROM DATE2_TABLE))<=14

正如您所指出的,第二个表上有许多记录。那么,您想将第一个表中的哪些日期与第二个表中的哪些日期进行比较——全部、部分还是什么?您想如何决定哪些记录要与哪些记录进行比较?很抱歉,解释不正确。我有两个查询第一个查询不会给出日期,第二个查询只会给出一个日期。我需要检查第一个查询中的任何日期好的,您只想从第二个表中选择一个日期,但哪一个-最小、最大、中值,其他日期…?我想我可以用cte来做同样的…:。。如果select只返回一个值,我将在您可以使用select时更新。其中函数需要标量值
SELECT TOP 1 *
    FROM DATE1_TABLE 
     WHERE DATEDIFF(DD,DATE1,(SELECT DATE2 FROM DATE2_TABLE))<=14