SQL总和,多个分组依据和日期条件

时间:2017-05-05 13:39:42

标签: sql microsoft-query

我希望在SQL表上执行总和计算,以查找针对特定销售人员持有的特定股票项目的数量,包括特定日期。

每当我不考虑日期范围标准时,我就可以执行总和功能来在销售员/项目的基础上查找数量,但是只要我添加该方面,它就会变得有点梨形!到目前为止,这是我的代码:

SELECT Salesperson, Item No, Sum(Quantity) AS 'Quantity'
FROM dbo
WHERE (Location Code='VAN')
GROUP BY Salesperson, Item No,
HAVING (Registering Date<={ts '2017-05-03 00:00:00'})

位置代码= VAN过滤器是确保它忽略仓库数量所必需的。我的SQL知识仅限于我在工作中遇到的几个实例,我的交互主要基于Excel中的Microsoft Query。查看上面的代码时,我认为“注册日期”标准应该在“WHERE”部分,但是当我使用Microsoft Query中提供的选项添加条件时,它会创建“HAVING”行。

如果有人能提供任何指示,我们将不胜感激!

干杯

彼得

1 个答案:

答案 0 :(得分:1)

我会想象一个像这样的查询:

SELECT Salesperson, [Item No], Sum(Quantity) AS Quantity
--------------------^ escape the non-standard column name
FROM dbo.??
---------^ table name goes here
WHERE Location Code = 'VAN' AND
      [Registering Date] <= '2017-05-03'
------^ put the filtering condition in the correct clause
GROUP BY Salesperson, Item No
-----------------------------^ remove the comma

您编写的代码有多处错误。我猜大多数都是转录错误而不是原始查询(如果FROM中没有给出表,则查询不会运行)。然后,“主要”错误将在HAVING子句而不是WHERE子句中进行过滤。