我使用以下代码从SQL Server获取今天的货币。
WITH TodayCurrency(RateDate, Currency, Rate, USDR)
AS (SELECT T0.RateDate,
T0.Currency,
T0.Rate,
Cast(Round(Cast(T0.Rate AS FLOAT) / Cast(T1.Rate AS FLOAT), 4) AS FLOAT) USDR
FROM ORTT T0
JOIN (SELECT *
FROM ORTT
WHERE RateDate = CONVERT(DATE, Getdate())
AND Currency = 'USD') T1
ON T0.RateDate = T1.RateDate
WHERE T0.RateDate = CONVERT(DATE, Getdate()))
SELECT *
FROM TodayCurrency
结果如下,这是我的期望。我将使用USDR将所有交易转换为USD
RateDate Currency Rate USDR
14-Jan-18 EUR 1.5111 1.1832
14-Jan-18 HKD 0.1635 0.128
14-Jan-18 RMB 0.1936 0.1516
14-Jan-18 USD 1.2771 1
但是,当我用它来加入与交易的链接时,所有交易USDR都会返回1.0000
WITH TodayCurrency(RateDate, Currency, Rate, USDR)
AS (SELECT T0.RateDate,
T0.Currency,
T0.Rate,
Cast(Round(Cast(T0.Rate AS FLOAT) / Cast(T1.Rate AS FLOAT), 4) AS FLOAT) USDR
FROM ORTT T0
JOIN (SELECT *
FROM ORTT
WHERE RateDate = CONVERT(DATE, Getdate())
AND Currency = 'USD') T1
ON T0.RateDate = T1.RateDate
WHERE T0.RateDate = CONVERT(DATE, Getdate()))
SELECT ODPO.*,
TodayCurrency.USDR
FROM ODPO
LEFT JOIN TodayCurrency
ON ODPO.DocCur = TodayCurrency.Currency
ODPO.DocCur是交易货币,即欧元,港元,人民币或美元。
感谢您的帮助。