我有一张桌子,日期大约是另一张桌子前1个月。
例如, 一张表报告3月31日第一季度结束 其他报告于2月28日(或29日)结束 但是,无论两个日期都不完全相同,在日期之前加入它们就完全没问题。
请提出任何建议。
由于
答案 0 :(得分:1)
您可以加入DateDiff(dd,Date1,Date2)< X
或者更精确地
select endOfMonth.*, begOfMonth.*
from endOfMonth join begOfMonth
on DATEADD (dd , 1 , endOfMonth.date ) = begOfMonth.Date
答案 1 :(得分:0)
如果我非常了解您并且您在这些表中具有相同数量的列,那么您应该在SQL查询中使用UNION
。在此处查看有关UNION
的更多信息:http://en.wikipedia.org/wiki/Set_operations_%28SQL%29。
答案 2 :(得分:0)
一种方法是使用DATEPART() function为任何给定日期返回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字段)。
答案 3 :(得分:0)
您的ON条款可以查看匹配的年份和季度:
ON TABLE1.YEAR([1st quarter end ]) = TABLE2.YEAR([1st quarter end ])
AND TABLE1.QUARTER([1st quarter end ]) = TABLE2.QUARTER([1st quarter end ])
答案 4 :(得分:0)
select val1 From Table1 T1 inner Join Table2 t2 on MONTH(T1.date1) = MONTH(t2.date1)
And YEAR(T1.date1) = YEAR(t2.date1)