sql-只显示过去四个月

时间:2017-01-31 19:32:55

标签: sql ms-access sql-view

我很好的参考 How to filter my results so it shows the last four months of data - sql

到目前为止我已经

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&#39的订单数量为2月9日/ 23日,数量为200,2014年2月3日数量为200,2016年6月6日数量为200日元时间2017年1月21日

如何过滤掉它,以便仅显示今天过去四个月的结果?

我可以在查询设计或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;

1 个答案:

答案 0 :(得分:3)

添加一个where子句并比较" DateField"到目前的日期。因此,如果您的DateField名为OrderDate,则替换" DateField"使用" OrderDate"

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;

我猜你的日期字段实际上在OrderHeader表中,如果是这样,你需要加入OrderHeader表。以下是一个例子

testid stepid serverid duration
1      1      1        10
1      2      1        11
2      1      2        12
2      2      2        13
3      1      1        14
3      2      1        15
4      1      2        16
4      2      2        17