Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 根据日历ID加入最新记录_Sql Server_Calendar - Fatal编程技术网

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