2016-07-09 10 views
1

ステータス列に保留中と完了の両方が含まれている場合、ステータス列に保留中の部分を表示します。列に保留中と完了の両方が含まれている場合にステータス列に部分的に保留中のメッセージを表示する方法

表:

Enquiry Name Part Number  Status 
------------------------------------------ 
Enq1   aar-12332  Pending 
Enq1   aar-12555  Completed 
Enq2   aar-12666  Pending 

期待される結果:

Enquiry Name Status 
---------------------------------- 
Enq1   Partial Pending 
Enq2   Pending 

は、私が書いたと、多くのクエリを試みたが、予想通り、私は取得できませんでした。

私にこれを助けてください。

答えて

1

以下のアプローチを使用することにより、あなたはあなたの期待される結果を達成することができます

-- Get 'Partial Pending' 
SELECT EnquiryName, 'Partial Pending' AS `Status` 
FROM EnquiryTable 
WHERE `Status` IN ('Pending', 'Completed') 
GROUP BY EnquiryName 
HAVING COUNT(DISTINCT `Status`) = 2 

UNION 

-- Get the remaining Status 
SELECT EnquiryName, `Status` 
FROM EnquiryTable 
WHERE `Status` IN ('Pending', 'Completed') 
GROUP BY EnquiryName 
HAVING COUNT(DISTINCT `Status`) <> 2 

結果:同じのため、このpost

SQLフィドルDEMOから

EnquiryName  Status 
Enq1   Partial Pending 
Enq2   Pending 

リファレンスを。

関連する問題