您好,感谢您的帮助我在SQL 2008中创建了一个View,我需要将金额转换为其他货币,我还需要确保它使用基于日期的相应货币。在我开始创建本月平均值以简化转换之前,我认为每个字段单独计算会更好。
我的货币表中的数据看起来如此(简化)表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
所以我的问题是,我可以将RATE与RATEDATE匹配,如果不存在,则RATEDATE就在之前的下一个RATEDATE。
总的来说,我按照acctID,FISCALYR和FISCALPERD对数据进行分组并对汇总的数量进行汇总,但我决定在使用WITH语句对它们进行SUMing之前转换金额。
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'
)
任何建议都将不胜感激。