2012-06-19 82 views
0

我有一个Oracle表记录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'的描述就是一样的。

在上面的示例查询应返回如下:

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 

请帮

回答

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) 

应该工作

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)