我有一个表与汇率:加入多个表中的SQL Server
CREATE TABLE ExchangeRates
(
ID int IDENTITY,
SellingCurrency nvarchar(20),
BuyingCurrency nvarchar(20),
Rate float,
CONSTRAINT PK__ExchangeRates__ID PRIMARY KEY (ID)
)
例如,表中包含了这样的数据:
INSERT INTO ExchangeRates
VALUES ('USD', 'RUB', 1.2),
('RUB', 'EUR', 0.5),
('SEK', 'RUB', 1.3)
我需要编写一个查询应该返回即使这两种货币没有联系(使用交易所链),两种货币的汇率也是如此。
我该怎么办?
有点偏离主题,但不是你的货币总是与同一基础货币(RUB)有关?如果是的话,那么你应该总是存储相对于基础货币的汇率 - 这样你总能找到交叉汇率,只用两个连接。 – Arvo 2014-11-25 11:51:32
@marc_s我想过在'SellingCurrency = BuyingCurrency'上连接表本身,但问题是这个JOIN的数量并不是恒定的。 – michaeluskov 2014-11-25 11:52:00
@Arvo不,这只是一个例子,实际情况可能不同。 – michaeluskov 2014-11-25 11:52:34