2

私は次のクエリを書きました

サンプルクエリ

USE SampleDB
SELECT Sec.SecurityID, Port.PortfolioCode, Sec.SymbolNameSpace, Sec.Symbol, 
    PT.TradeAmount, PT.tradedate, PT.settledate, PT.PostDate, PT.TransactionCode, 
    PT.SecurityID1
FROM AdvApp.vPortfolioTransaction PT
LEFT OUTER JOIN
    AdvApp.vPortfolio PORT
    ON Port.PortfolioID = PT.PortfolioID
LEFT OUTER JOIN
    AdvApp.vSecurity Sec
    ON Sec.SecurityID = PT.SecurityID1
WHERE Sec.SecurityID = 4678 or Sec.SecurityID = 6
ORDER BY PT.TradeAmount

目的の結果セット

SecurityID  PortfolioCode   SymbolNameSpace Symbol  TradeAmount tradedate   settledate  PostDate    TransactionCode SecurityID1
4678    pendingtest caus    pending  368,456.00     5/21/2013   NULL    5/21/2013   lo  4678
6   pendingtest caus    cash     368,456.15     5/22/2013   NULL    5/23/2013   lo  6
4678    pendingtest caus    pending  7,800.00   4/17/2013   NULL    5/21/2013   lo  4678
6   pendingtest caus    cash     7,801.00   4/23/2013   NULL    5/23/2013   lo  6

サンプルの実際の結果セット

SecurityID  PortfolioCode   SymbolNameSpace Symbol  TradeAmount tradedate   settledate  PostDate    TransactionCode SecurityID1
6   pendingtest caus    cash     240,453.70     7/16/2010   NULL    7/19/2010   lo  6
6   pendingtest caus    cash     249,562.32     1/19/2012   1/19/2012   1/20/2012   dp  6
6   pendingtest caus    cash     368,456.15     5/22/2013   NULL    5/23/2013   lo  6
6   pendingtest caus    cash     250,000.00     12/1/2003   NULL    12/1/2003   lo  6
6   pendingtest caus    cash     250,321.13     11/15/2010  11/15/2010  11/16/2010  dp  6
6   pendingtest caus    cash     365,445.58     1/31/1999   NULL    3/26/1999   dp  6
4678    pendingtest caus    pending  368,456.00     5/21/2013   NULL    5/21/2013   lo  4678
4678    pendingtest caus    pending  7,800.00   4/17/2013   NULL    5/21/2013   lo  4678
6   pendingtest caus    cash     7,801.00   4/23/2013   NULL    5/23/2013   lo  6

ロジックは、行のペアが +/- 5 以内の取引金額に一致するテーブル行のみを表示することです。また、SecurityID1 値が 4678 と 6 の組み合わせである行のみを表示することも必要です。ペアには、SecurityID1 である 1 つの行が常に含まれます。 4678 で、もう一方の行は SecurityID1 6 です。

トランザクションをペアにする方法を広範囲に検索しましたが、+/- 5 の許容範囲内で同様の値を許可する方法の例が見つかりません

4

1 に答える 1