1

我有一张桌子,日期比另一张桌子早大约 1 个月。

例如,一个表报告第一季度结束于 3 月 31 日,而另一个表报告第一季度结束于 2 月 28 日(或 29 日),但无论两个日期不完全相同,都可以在日期之前将它们连接在一起。

请有任何建议。

谢谢

4

5 回答 5

1

您可以加入 DateDiff(dd, Date1, Date2) < x

或者更准确地说

select endOfMonth.*, begOfMonth.* 
from endOfMonth join begOfMonth 
on DATEADD (dd , 1 , endOfMonth.date ) = begOfMonth.Date
于 2012-05-02T14:00:40.947 回答
0

如果我正确理解您并且您在这些表中具有相同数量的列,那么您应该UNION在 SQL 查询中使用。在此处查看更多信息UNIONhttp ://en.wikipedia.org/wiki/Set_operations_%28SQL%29 。

于 2012-05-02T14:01:13.773 回答
0

一种方法是使用返回任何给定日期的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 中。

于 2012-05-02T14:01:43.740 回答
0

您的 ON 子句可以查看匹配的年份和季度:

ON TABLE1.YEAR([1st quarter end ]) = TABLE2.YEAR([1st quarter end ])
AND TABLE1.QUARTER([1st quarter end ]) = TABLE2.QUARTER([1st quarter end ])
于 2012-05-02T14:02:35.863 回答
0
select val1 From Table1 T1 inner Join Table2 t2 on MONTH(T1.date1) = MONTH(t2.date1)
And YEAR(T1.date1) = YEAR(t2.date1)
于 2012-05-02T14:10:59.923 回答