0

以下に示すようなOracleテーブルがあります。

Orders
---------
OrderFullFillID
Description
OrderDate
OrderStatus
Qty

Below are sample records

1    PTS123   1/1/2012     Settled     10
2    PTS123   1/1/2012    ArchSettled  10
3    PTS124   2/1/2012    Settled      10
4    PTS124   2/1/2012    Settled      20
5    PTS125   2/1/2012    Settled      20
6    PTS125   2/1/2012    Settled      20
7    PTS126   2/1/2012    Settled      20
8    PTS126   2/1/2012    ArchSettled  20

説明が同じで status='settled' が重複しているレコードを表示するにはどうすればよいですか? 同じ説明、statusdate を持つ 2 つのレコードがありますが、ステータスは異なります。status='Settled' のものだけをリストする必要があり、説明は同じです。

上記のサンプルでは、​​クエリは次を返す必要があります。

    3    PTS124   2/1/2012    Settled      10
    4    PTS124   2/1/2012    Settled      20
    5    PTS125   2/1/2012    Settled      20
    6    PTS125   2/1/2012    Settled      20

助けてください

4

2 に答える 2

1
SELECT OrderFulFillID,
       Description,
       OrderData,
       OrderStatus,
       Qty
  FROM orders a
 WHERE status = 'Settled'
   AND NOT EXISTS( SELECT 1
                     FROM orders b
                    WHERE a.description = b.description
                      AND a.statusDate  = b.statusDate
                      AND a.status     != b.status )

動作するはずです

于 2012-06-19T12:28:48.797 に答える
0
SELECT OrderFulFillID,
       Description,
       OrderData,
       OrderStatus,
       Qty
  FROM orders a
  WHERE status = 'Settled'
    AND EXISTS( SELECT 1
                  FROM orders b
                  WHERE a.description     = b.description
                    AND a.OrderFulFillID != b.OrderFulFillID
                    AND a.status          = b.status )
于 2012-06-19T12:44:00.220 に答える