2017-03-20 1 views
1

Ich brauche eine Abfrage, wo das Ergebnis nur Datensätze zeigt, in denen es mehrere Werte in einer Gruppe concat gibt. Ich bin nur an Datensätzen interessiert, bei denen mehr als ein Wert in der Spalte group_contact angezeigt wird.MySQL zeigt nur Datensätze, wo COUNT von GROUP_CONCAT> 1

Ich habe eine Änderungsprotokolltabelle, die Preisänderungen einer Bestellung speichert. Jede Änderung des Bestellpreises ist ein weiterer Eintrag in der Tabelle. Hier ist meine Abfrage so weit:

SELECT PONum, POLine, GROUP_CONCAT(DISTINCT DocUnitCost) AS priceChanges 
FROM `podetailcl` 
WHERE 1 -- ?something here saying where COUNT of price changes > 1? 
GROUP BY PONum, POLine 

Weitere Informationen: enter image description here

könnte ich verwenden müssen, DAS, aber ich bin nicht ganz klar, wie das strukturieren. Ich habe versucht, die Vorschläge auf anderen Seiten, aber ich bin immer noch auf diesem verloren.

Antwort

1

sollten Sie verwenden für Filter aggregierte Ergebnis zu haben und nicht, wo ..

SELECT PONum, POLine, GROUP_CONCAT(DISTINCT DocUnitCost) AS priceChanges 
FROM `podetailcl` 
GROUP BY PONum, POLine 
having count(DISTINCT DocUnitCost)>1 
+0

Das hat perfekt funktioniert. Ich hatte das Gefühl, es wäre etwas Einfaches! –

+0

@ S.Mason ... sql ist eine sehr mächtige (und einfache) Sprache ,, ist dafür gebaut ... vielen Dank – scaisEdge

1
SELECT PONum, POLine, GROUP_CONCAT(DISTINCT DocUnitCost) AS priceChanges 
FROM `podetailcl` 
GROUP BY PONum, POLine 
HAVING COUNT(DISTINCT DocUnitCost) > 1 
+0

Sie für Ihre Hilfe bei diesem zu danken. –

+0

@ S.Mason können Sie up? –

+0

Ja, kein Problem! Prost. –

Verwandte Themen