2017-01-31 10 views
0

моя хорошая ссылка была How to filter my results so it shows the last four months of data - sqlsql- показать только последние четыре месяца

До сих пор я

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

Это показывает

ItemCode Total_Quantity 
PL   1200  
MA   975   
153   200 

В то время как заказы PL являются кол-во 200 на 9/23/2011 qty 200 на 2/3/2014 qty 200 на 12/6/2016 qty 200 1/21/2017

Как я могу отфильтровать его, чтобы показывать только последние четыре месяца из сегодняшнего месяца?

Могу ли я что-нибудь сделать для создания запроса или кода SQL?

Любая идея по ошибке синтаксиса в строке WHERE dbo_SO_SalesOrderHeader.OrderDate >= dateadd(month, -4, cast(getdate() AS DATE)). Спасибо огромное!

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; 

ответ

3

Добавить ИНЕКЕ и сравнить «DateField» на текущую дату. Так что, если ваш DateField называется OrderDate заменить «DateField» с «OrderDate»

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; 

Я предполагаю, что ваш DateField на самом деле в таблице OrderHeader и если так что вам нужно будет присоединиться к таблице OrderHeader. Ниже приведен пример

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

спасибо! попробуем скоро и выступим! :) Еще раз спасибо –

+0

Благодарим вас за идею «ПРИСОЕДИНЯЙТЕСЬ». Вы верны этому! Я отредактировал свой вопрос, если вы не возражаете взглянуть на него вторым. Я очень благодарен за вашу помощь! –

+0

Im с отсутствующей ошибкой оператора. извините за продолжение;) Еще раз спасибо! ответ будет как можно скорее –