SELECT a.id, a.bbTicker, a.name, a.isin,
sum(b.amPurchased*(isNull(CASE WHEN (isNull(a.pxReval,0)<>0) THEN (a.pxReval) ELSE (a.pxMTM) END,b.amPrice)))/sum(b.amPurchased) AS currPrice,
(eur.rate/c.rate)*(a.amOutstanding/a.amOriginal)*(sum(b.amPurchased*(isNull(CASE WHEN (isNull(a.pxReval,0)<>0) THEN (a.pxReval) ELSE (a.pxMTM) END,b.amPrice)/100.0))/sum(b.amPurchased)) * sum(b.amPurchased) AS amOutstanding,
CASE WHEN (isNull(walManual,0)<>0) THEN (walManual) ELSE (isNull(a.walNow,CONVERT(float,datediff(d,getdate(),a.dtFinalMat))/365.25)) END AS remainingWAL,
/*CHECK THIS*/a.margin- ((sum(b.amPurchased*
(isNull(CASE WHEN (isNull(a.pxReval,0)<>0) THEN (a.pxReval) ELSE (a.pxMTM) END,b.amPrice)-100)*100)/sum(b.amPurchased))
/CASE WHEN (isNull(walManual,0)<>0) THEN (walManual) ELSE (isNull(a.walNow,CONVERT(float,datediff(d,getdate(),a.dtFinalMat))/365.25))) END AS dmNow,
'=(RC[-3]*MAX(1,RC[-2]*0.1)*RC[-1])/10000' AS sensitivity
FROM cecViewPortfolio a RIGHT JOIN bondPrices b ON a.id=b.bondId LEFT JOIN fxRates c ON a.fxId=c.id, fxRates eur
WHERE isNull(a.amOriginal,0)<>0 AND eur.shortname='EUR' AND isNull(c.rate,0)<>0
GROUP BY a.id,a.bbTicker,a.name,a.isin, a.amOutstanding, a.amOriginal, c.rate, eur.rate, a.walNow, a.margin, a.dtFinalMat, a.walManual, a.dtWalManual
HAVING isNull(sum(b.amPurchased),0)<>0