Sql server 根据日历ID加入最新记录
我有两张表,一张是汇率表,另一张是交易表。由于周末没有汇率,我需要得到最新的汇率。有人能帮我吗?我有以下两个示例表,它们具有预期的结果:Sql server 根据日历ID加入最新记录,sql-server,calendar,Sql Server,Calendar,我有两张表,一张是汇率表,另一张是交易表。由于周末没有汇率,我需要得到最新的汇率。有人能帮我吗?我有以下两个示例表,它们具有预期的结果: DateID | Exchange rate 20200514 | 5,2 20200515 | 5,4 20200518 | 5,3 20200519 | 5,2 DateID | Transaction | Desired Exchange rate 20200514 | 500 | 5,2 20200514 | 400
DateID | Exchange rate
20200514 | 5,2
20200515 | 5,4
20200518 | 5,3
20200519 | 5,2
DateID | Transaction | Desired Exchange rate
20200514 | 500 | 5,2
20200514 | 400 | 5,2
20200517 | 300 | 5,4
20200518 | 500 | 5,3
我使用的代码如下:
SELECT
t.DateID,
t.Transaction,
MAX(e.Exchange Rate)
FROM dbo.TransactionTable t
LEFT JOIN dbo.ExchangeRate e ON e.DateID <= t.DateID
选择
t、 DateID,
t、 交易,
最大值(如汇率)
来自dbo.transactionTablet
LEFT JOIN dbo.ExchangeRate e ON e.DateID使用子查询
实现以下目的:
declare @T table(
DateID INT ,[ Exchange rate] VARCHAR(10))
Insert into @T values(20200514,'5,2')
Insert into @T values(20200515,'5,4')
Insert into @T values(20200518,'5,3')
Insert into @T values(20200519,'5,2')
declare @R table(
DateID INT ,[ Transaction] INT)
Insert into @R values(20200514, 500)
Insert into @R values(20200514, 400)
Insert into @R values(20200517, 300)
Insert into @R values(20200518, 500)
主要查询:
SELECT M.DATEID,M.[ TRANSACTION],S.DES_EXCHANGE_RATE FROM @R M
INNER JOIN (
SELECT DATEID, MAX([ EXCHANGE RATE]) AS DES_EXCHANGE_RATE
FROM @T
GROUP BY DATEID) S ON S.DATEID=M.DATEID