1

您好,感谢您的帮助我正在 SQL 2008 中创建视图,我需要将金额转换为不同的货币,我还需要确保它使用基于日期的适当货币。在我只创建一个月的平均值以简化我的转换之前,但我认为单独计算每个字段会更好。

我的货币表中的数据看起来像这样(简化)表 A。

HOMECUR  SOURCECUR RATEDATE  RATE 
USD      CAD       20120314  1.0086000
USD      CAD       20120316  1.0087000

金额表中的数据看起来像这样(简化)表 B。

RATEDATE TRANSAMT FISCALYR FISCALPERD ACCTID
20120314 120.00   2012     05         123456

所以我的问题是,我可以设置什么来获得与 RATEDATE 匹配的 RATE,如果不存在 RATEDATE,那么就在之前的下一个 RATEDATE。

总体而言,我按 acctID、FISCALYR 和 FISCALPERD 对数据进行分组,并对这些金额进行求和,但我决定在使用 WITH 语句对它们进行求和之前转换这些金额。

ALTER VIEW vJFTESTVIEW
AS
    WITH        
    ActualRateHAIUSA as(
        SELECT POP =  rat.RATE * act.TRANSAMT,
               act.FISCALYR,
               act.FISCALPERD,
               act.ACCTID as ACID
        FROM 
            TABLEA rat,
            TABLEB act
        WHERE -- as my table shows TABLE B's RATEDATE is on the 15th of March
              --, while TABLE A does not have the 15th of March. 
              --It should then take the one 14h instead 
              --(the next closest date while not going the original date) 
              AND rat.HOMECUR = 'CAD'
              AND rat.SOURCECUR = 'USD' 
    )

任何建议将不胜感激。

4

0 回答 0