首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得转换后的列值

如何获得转换后的列值
EN

Stack Overflow用户
提问于 2017-03-27 02:02:45
回答 1查看 28关注 0票数 1

我们的数据库只提供基于cad的汇率( FX /cad),但是,我需要使用基于美元的汇率(fx/美元),所以我想这样做。

基于FXrate_cad_基于FXrate_美元_to_cad的spotrate

代码语言:javascript
复制
SELECT npv.ValDate, month(npv.ValDate) as Month, rtrim(npv.CurID) as CurID, (npv.SpotRate) as SpotRate_Cad  
 FROM DB.NPVPLFxRate as npv 
 WHERE (npv.ValDate<='2017-03-23')  
 AND (npv.ValDate>='2016-11-01')    
 LEFT JOIN  
 (SELECT npv.ValDate as usdValDate, (npv.SpotRate) as SpotRate_usd  
 FROM DB.NPVPLFxRate as npv 
 WHERE (npv.ValDate<='2017-03-23')  
 AND (npv.ValDate>='2016-11-01')    
 AND (npv.CurID = "usd"))  usdFX    
 ON npv.ValDate = usdFX.usdValDate  
 ORDER BY npv.ValDate, npv.CurID    
EN

回答 1

Stack Overflow用户

发布于 2017-03-27 04:42:00

试试这个:

代码语言:javascript
复制
SELECT 
  cad.ValDate, 
  month(cad.ValDate) as Month, 
  rtrim(cad.CurID) as CurID, 
  cad.SpotRate as SpotRate_Cad,
  cad.SpotRate / usd.SpotRate as SpotRate_USD
FROM DB.NPVPLFxRate as cad 
JOIN DB.NPVPLFxRate as usd ON usd.ValDate = cad.ValDate
WHERE cad.ValDate between '2016-02-28' and '2016-03-02' and usd.CurID = 'usd'
ORDER BY cad.ValDate, cad.CurID 

我不确定您是否应该考虑LEFT JOIN,因为您的费率表应该有每天完整的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43036825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档