1

我真的很想从 SQL Sybase 表中获得以下查询的帮助。我想看看任何给定日期StressResults的每个前 5 名是否有任何投资组合不同的PortfolioID重复项。 StressResultsStressTest

我真的很感激任何意见。

表 named 中有四列(PortfolioID, Date, StressTest, StressResult),表 named有StressResultsTable两列。(StressTest, Limits)StressScenariosTable

这是我的示例查询,即宇宙。

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 
4

1 回答 1

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'

于 2014-11-19T21:43:34.817 回答