我希望对 SQL 表执行总和计算,以查找特定销售人员在特定日期之前持有的特定库存项目的数量。
每当我不考虑日期范围标准时,我都可以执行 sum 函数来查找基于销售人员/项目的数量,但是一旦我添加了该方面,它就会变得有点梨形!到目前为止,这是我的代码:
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”行。
如果有人可以提供任何指示,将不胜感激!
干杯
彼得
我会想象这样的查询:
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
子句中过滤。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句