2017-01-31 2 views
0

meine gute Referenz How to filter my results so it shows the last four months of data - sqlSQL- zeigen nur die letzten 4 Monate

Ich habe

SELECT ItemCode, SUM(QuantityOrdered) AS Total_Quantity 
FROM OrderDetail 
GROUP BY ItemCode 
ORDER BY SUM(QuantityOrdered) DESC; 

Bisher war es zeigt

ItemCode Total_Quantity 
PL   1200  
MA   975   
153   200 

Während PL Orden Menge sind 200 auf 9/23/2011 Menge 200 am 03.02.2014 Menge 200 am 06.12.2016 Menge 200 21.01.2017

Wie kann ich es herausfiltern, um nur das Ergebnis der letzten vier Monate des heutigen Monats anzuzeigen?

Kann ich etwas auf Abfrageentwurf oder SQL-Code tun?

Irgendeine Idee auf Syntaxfehler on line WHERE dbo_SO_SalesOrderHeader.OrderDate >= dateadd(month, -4, cast(getdate() AS DATE)). Ich danke dir sehr! In

SELECT dbo_SO_SalesOrderDetail.ItemCode, SUM(dbo_SO_SalesOrderDetail.QuantityOrdered) AS Total_Quantity, dbo_SO_SalesOrderHeader.OrderDate 
FROM dbo_SO_SalesOrderDetail INNER 
JOIN dbo_SO_SalesOrderHeader ON dbo_SO_SalesOrderDetail.SalesOrderNo = dbo_SO_SalesOrderHeader.SalesOrderNo 
WHERE dbo_SO_SalesOrderHeader.OrderDate >= dateadd(month, -4, cast(getdate() AS DATE)) 
GROUP BY dbo_SO_SalesOrderDetail.ItemCode 
ORDER BY SUM(dbo_SO_SalesOrderDetail.QuantityOrdered) DESC; 

Antwort

3

eine where-Klausel und vergleichen Sie die „Datefield“ zu dem aktuellen Datum. Also, wenn Ihr Datefield heißt Orderdate „Datefield“ ersetzen mit „Bestelldatum“

SELECT ItemCode, SUM(QuantityOrdered) AS Total_Quantity 
FROM OrderDetail 
where DateField >= dateadd(month, -4, cast(getdate() as DATE)) 
GROUP BY ItemCode 
ORDER BY SUM(QuantityOrdered) DESC; 

Ich vermute, dass Ihr Datefield tatsächlich in der Tabelle Orderheader ist und wenn ja, müssen Sie die Orderheader-Tabelle verbinden. Unten ist ein Beispiel

SELECT ItemCode, SUM(QuantityOrdered) AS Total_Quantity 
    FROM OrderDetail 
    JOIN OrderHeader on OrderHeader.Orderid=OrderDetail.OrderID 
    WHERE OrderHeader.OrderDate >= dateadd(month, -4, cast(getdate() as DATE)) 
    GROUP BY ItemCode 
    ORDER BY SUM(QuantityOrdered) DESC; 
+0

danke! werde bald versuchen und upvote! :) Danke nochmal –

+0

Danke für die 'JOIN' Idee. Du hast Recht damit! Ich habe meine Frage bearbeitet, wenn es Ihnen nichts ausmacht, einen zweiten Blick darauf zu werfen. Ich würde Ihre Hilfe sehr schätzen! –

+0

Ich habe einen fehlenden Bedienerfehler. Entschuldigung für das Follow-up;) Danke nochmal! wird so schnell wie möglich –

Verwandte Themen