2016-07-09 6 views
1

Ich möchte teilweise ausstehende in meinem Status Spalte anzeigen, wenn Status Spalte sowohl ausstehende als auch abgeschlossen enthält.Wie teilweise ausstehende in Status Spalte angezeigt wird, wenn Spalte enthält ausstehende und abgeschlossen in mysql

Tabelle:

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

Erwartetes Ergebnis:

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

Ich schrieb und versucht, viele Abfrage, aber ich habe nicht wie erwartet.

Bitte helfen Sie mir damit.

Antwort

1

Durch den Ansatz unten verwenden, können Sie Ihr erwartetes Ergebnis erzielen:

-- 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 

Ergebnis:

EnquiryName  Status 
Enq1   Partial Pending 
Enq2   Pending 

Referenz von dieser post

SQL Fiddle DEMO für das gleiche.

Verwandte Themen