2012-06-19 84 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)