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