2017-12-15 4 views
1

Ich habe einen Teil meiner Anfrage als:Kombination Count und MIN Funktionen

SUM(POReceiptQuantity)  as Receieved, 
MIN(ItemLocalStandardCost) as Low, 
MAX(ItemLocalStandardCost) as High, 

Received kehrt die Gesamtzahl der Artikel, die wir in diesem Jahr verkauft. Der LOW ist der niedrigste Preis, den wir bezahlt haben, und High ist der höchste Preis, den wir bezahlt haben.

Ich versuche, eine neue Spalte zu integrieren, die zeigt, wie viele, wenn der Artikel, den wir zum niedrigen Preis verkauft haben. Ich habe versucht, Count zusammen mit Min-Funktion zu verwenden, aber es gibt eine "kann keine Aggregatfunktion für einen Ausdruck mit einem Aggregat oder einer Unterabfrage ausführen"

Hat jemand irgendwelche Ideen, wie ich das tun könnte.

Danke

+2

verwenden was ist Ihr RDBMS? –

Antwort

0

Sie benötigen eine Unterabfrage mit dem aktuellen GROUP BY Abfrage erstellen und mit dem Original-Tabelle verbinden. Dann können Sie eine bedingte COUNT

SELECT T2.Received, 
     T2.Low, 
     COUNT(CASE WHEN T1.ItemLocalStandardCost = T2.Low THEN 1 END) as Total_Low, 
     T2.High, 
     COUNT(CASE WHEN T1.ItemLocalStandardCost = T2.High THEN 1 END) as Total_High 

FROM YourTable T1 
CROSS JOIN (SELECT SUM(Y.POReceiptQuantity)  as Receieved, 
        MIN(Y.ItemLocalStandardCost) as Low, 
        MAX(Y.ItemLocalStandardCost) as High 
       FROM YourTable Y 
       GROUP BY ....) as T2 
Verwandte Themen