2017-03-27 17 views
1

私たちのデータベースは、CADベースのFXレート(fx/cad)のみを提供していますが、usdベースのレート(fx/usd)を使用する必要があります。私はspotrate変換カラムの値の取得方法


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  
+0

使用しているdbmsにタグを付けます。いくつかの製品固有のSQLは... – jarlh

答えて

0

としてこの

FX_rate_cad_based/FXrate_usd_to_cadのような何かをしたい、これを試してみてください:

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を検討すべきであることを確認していません毎日の完全な情報が必要です。

関連する問題