数字返回整数而不是浮点数

时间:2018-01-15 04:29:03

标签: sql-server

我使用以下代码从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是交易货币,即欧元,港元,人民币或美元。

感谢您的帮助。

0 个答案:

没有答案