为什么这个金额(卖出)给了我一个不同的结果,而不是手工求和字段?
下面的查询为我提供了正确的#,如果我手动求和Sold字段的话:
SELECT CustCode, FiscalYear, Sold
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
and CustCode = '248'
GROUP BY CustCode, FiscalYear, Sold但是如果我尝试使用和函数,我得到的值是错误的。有人能帮我吗?
SELECT CustCode, FiscalYear, SUM(Sold)
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
and CustCode = '248'
GROUP BY CustCode, FiscalYear目标是只有一个返回的结果- CustCode、FiscalYear和Sum(Sold)。感谢你的指点!
发布于 2015-09-17 15:27:54
SELECT CustCode, FiscalYear, Sold
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
AND CustCode = '248'
GROUP BY CustCode, FiscalYear, Sold;是相同的
SELECT DISTINCT CustCode, FiscalYear, Sold
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
AND CustCode = '248';基本上,您可以去掉多个Sold值。
试着总结:
SELECT CustCode, FiscalYear, Sold
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
AND CustCode = '248';并与SUM(Sold)结果进行比较。
发布于 2015-09-17 15:30:11
第一个查询组由CustCode、FiscalYear和Sold组成。也就是说,它在每个字段的唯一组合中返回一个行。这意味着,如果同一个CustCode和FiscalYear有几个具有相同Sold的条目,那么您将只返回其中一个行,并丢失重复的条目。因此,您的手工求和缺少值,第二个查询不会遗漏这些值。
https://stackoverflow.com/questions/32634204
复制相似问题