我有一个场景,如果两个日期之间的日期差异是,我想得到一个计数 < = 14天。在第一个表中我必须过滤记录,其中DATE1值的任何一个值都是< = DATE2的14天。
For Ex:
q1="SELECT DATE1 FROM DATE1_TABLE";
q2="SELECT DATE2 FROM DATE2_TABLE";
My simple query :
SELECT
COUNT(*)
FROM
DATE1_TABLE WHERE DATEDIFF(DD,DATE1,(SELECT DATE2 FROM DATE2_TABLE))<=14
但我在两个表中都有多条记录,但我想选择任何记录 这个差异然后它会得到一个&gt; 0.因此,抛出错误子查询返回更多 我想要一些解决方案。我正在使用SQL SERVER 2008
注意:我不能在这里使用加入。因为我想要两个不同查询的结果。 提前谢谢。
答案 0 :(得分:1)
您可以在查询中使用TOP 1子句..
SELECT TOP 1 *
FROM DATE1_TABLE
WHERE DATEDIFF(DD,DATE1,(SELECT DATE2 FROM DATE2_TABLE))<=14
答案 1 :(得分:0)
你不能使用SELECT,它会返回多个值,其中函数需要标量值...但是你可以加入这些表:
SELECT
COUNT(DISTINCT dt1.*)
FROM DATE1_TABLE dt1 INNER JOIN DATE2_TABLE dt2 ON DATEDIFF(DD,DATE1,DATE2)<=14
此查询仅在值在14天内时才会连接值,并依赖于DATE1_TABLE中的唯一值。我不知道它是否表现得很明智。