我有一张桌子,日期比另一张桌子早大约 1 个月。
例如,一个表报告第一季度结束于 3 月 31 日,而另一个表报告第一季度结束于 2 月 28 日(或 29 日),但无论两个日期不完全相同,都可以在日期之前将它们连接在一起。
请有任何建议。
谢谢
我有一张桌子,日期比另一张桌子早大约 1 个月。
例如,一个表报告第一季度结束于 3 月 31 日,而另一个表报告第一季度结束于 2 月 28 日(或 29 日),但无论两个日期不完全相同,都可以在日期之前将它们连接在一起。
请有任何建议。
谢谢
您可以加入 DateDiff(dd, Date1, Date2) < x
或者更准确地说
select endOfMonth.*, begOfMonth.*
from endOfMonth join begOfMonth
on DATEADD (dd , 1 , endOfMonth.date ) = begOfMonth.Date
如果我正确理解您并且您在这些表中具有相同数量的列,那么您应该UNION
在 SQL 查询中使用。在此处查看更多信息UNION
:http ://en.wikipedia.org/wiki/Set_operations_%28SQL%29 。
一种方法是使用返回任何给定日期的DATEPART() 函数。quarter
然后,您将能够加入返回的季度。
示例 SQL:
SELECT *
FROM
(
SELECT DATEPART(QUARTER,date_column) AS t1_quarter
FROM table1
UNION ALL
SELECT DATEPART(QUARTER,date_column) AS t2_quarter
FROM table2
) AS temp
WHERE temp.t1_quarter = temp.t2_quarter;
将您需要的任何其他字段(最有可能是 ID 字段)放在内部 SELECTS 中。
您的 ON 子句可以查看匹配的年份和季度:
ON TABLE1.YEAR([1st quarter end ]) = TABLE2.YEAR([1st quarter end ])
AND TABLE1.QUARTER([1st quarter end ]) = TABLE2.QUARTER([1st quarter end ])
select val1 From Table1 T1 inner Join Table2 t2 on MONTH(T1.date1) = MONTH(t2.date1)
And YEAR(T1.date1) = YEAR(t2.date1)