我有这些表:
我需要获取此表:
一个日期应该对应一个比率。速率选择如下:
如果两个表中的日期一致,则将表1中的日期分配给表2中的相应汇率。(例如,对于日期31/01 / 2014、31 / 03 / 2014、31 / 01 / 2015,您可以使用通常的左联接)。
如果表2中没有相应的日期(2014年2月28日),则需要采用该月的最后日期(来自表2(25-02-2014)) )。因此,必须将2014年2月28日的日期分配为18。
谢谢。
答案 0 :(得分:0)
--first table
SELECT t2.*,
cast(datepart(mm,[date]) as varchar)+' '+cast(datepart(yyyy,[date]) as varchar) as
MonthYear
into #tab1
FROM [BP].[dbo].[test1] t2;
----------------------------------------------
--second table
SELECT t.*,
cast(datepart(mm,[date]) as varchar)+' '+cast(datepart(yyyy,[date]) as varchar) as
MonthYear,
row_number() over(partition BY
cast(datepart(mm,[date]) as varchar)+' '+cast(datepart(yyyy,[date]) as varchar)
ORDER BY [date] desc) num
into #tab2
FROM
[BP].[dbo].[test2] t
order by [date]
------------------------------------------------
-- result table
select t1.*, t2.rate
from #tab1 t1 left join (select rate, MonthYear from #tab2 where num = 1) t2 on
t1.MonthYear = t2.MonthYear
order by [date];
select *
from [BP].[dbo].[test2]