我真的希望得到一些来自SQL Sybase表的查询的帮助。
我想查看任何给定日期的每个StressResults
的前5 PortfolioID
任何投资组合的不同StressResults
可能会有重复的StressTest
。
我真的很感激任何意见。
在名为(PortfolioID, Date, StressTest, StressResult)
的表中有四列StressResultsTable
,在(StressTest, Limits)
表中有两列StressScenariosTable
。
以下是我的示例查询,即Universe。
SELECT a.PortfolioID, a.Date, a.StressTest, a.StressResult from StressResultsTable a join StressScenariosTable b on a.StressTest = b.StressTest
WHERE a.PortfolioID IN ('Portfolio A', 'Portfolio B')
AND a.StressResult <> 0 AND a.Date >= '2013-06-20' and b.Limits = 1
ORDER BY a.PortfolioID, a.Date, a.StressResult
答案 0 :(得分:1)
尝试以下代码:
select a.PortfolioID, a.Date, a.StressTest, a.StressResult from StressResultsTable a
where
(
select count(b.*) from from StressResultsTable b
WHERE a.PortfolioID=b.PortfolioID
and a.StressResult=b.StressResult
) <= 5
and
a.PortfolioID IN ('Portfolio A', 'Portfolio B')
AND a.StressResult <> 0 AND a.Date >= '2013-06-20'
&#13;