0

私のテーブル構造は次のとおりです。

TradeNo | OrderNo | Buy_Sell | Trade_Qty | Market_Rate | Sauda_Date    | Expiry_Date

 1001      2001      Buy        100          5000       28 Feb 2013         2013-03-29 

 1002      2002      Buy        500          8000       28 Feb 2013         2013-03-29 

 1001      2001      Sell       70           5600       1 Mar 2013          2013-03-29 

各行のTradeNoとOrderNoは一意の組み合わせです。

一意のTradeNoとOrderNoの組み合わせ[Like1stと3rd]を持つすべてのレコードを選択したかったのですが、Sauda_Dateは異なる場合がありますが、Expirydate内で、購入/販売によって異なります。

この例から、次の行が選択されます。

TradeNo | OrderNo | Buy_Sell | Trade_Qty | Market_Rate | Sauda_Date    | Expiry_Date

     1001      2001      Buy        100          5000       28 Feb 2013         2013-03-29 


     1001      2001      Sell       70           5600       1 Mar 2013          2013-03-29 

これらの行は、TradenoとOrderNoがこれらに固有であり、購入、販売、およびsaudaの日付が有効期限内である場合に選択されます。

次のクエリを試しましたが、機能しませんでした。

select
    t1.TradeNo,
    t1.OrderNo,
    t1.Trade_Qty,
    t1.Market_Rate,
    t1.Sauda_Date,
    t1.Expirydate
from 
    tradeFile t1,
    tradeFile t2 
where 
    t1.TradeNo=t2.TradeNo and
    t1.OrderNo=t2.OrderNo

私を助けてください。

4

1 に答える 1

1

代わりにこれを試してください:

SELECT  t1.*
FROM tradeFile t1
INNER JOIN
(
    SELECT TradeNo, OrderNO
    FROM tradeFile
    GROUP BY TradeNo, OrderNO
    HAVING COUNT(*) > 1 
) AS t2  ON t1.TradeNo = t2.TradeNo
        AND t1.OrderNo = t2.OrderNO;

SQLフィドルデモ

于 2013-03-25T07:22:23.487 に答える