根据日期

时间:2018-03-02 13:33:45

标签: sql sql-server join

我有2个表,其中包含一个带有项目的记录和我在下面提到的日期:

Table 1:
A  |  B
1    1/1
2    1/1
1    1/7
2    1/21
1    1/10
2    1/30

Table 2: 

A  |  C
1    1/10
1    1/12
1    1/17
2    1/14
2    1/23
2    1/23

我希望将表2中的最小日期分配给表1,以获得表1中的最小日期。我已经给出了下面的输出表:

A  |  B  |  C
1    1/1   1/10
1    1/7   1/12
1    1/10  1/17 
2    1/1   1/14
2    1/21  1/23 
2    1/30  1/23

现在,表1中的最小日期与表2中记录的最小日期相关联。

1 个答案:

答案 0 :(得分:0)

您可以枚举值并加入:

select t1.a, t1.b, t2.c
from (select t1.*, row_number() over (partition by a order by b) as seqnum
      from t1
     ) t1 join
     (select t2.*, row_number() over (partition by a order by b) as seqnum
      from t2
     ) t2
     on t2.a = t1.a and t2.seqnum = t1.seqnum