我有一個表與匯率:加入多個表中的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