Mysql SUM(columnname)提供的结果与在SQL Server中手动求和columnname不同。为什么?
为什么总和(已售出)给我的结果与手动对字段求和的结果不同 下面的查询为我提供了正确的#如果我手动对已售出字段求和:Mysql SUM(columnname)提供的结果与在SQL Server中手动求和columnname不同。为什么?,mysql,sql-server,Mysql,Sql Server,为什么总和(已售出)给我的结果与手动对字段求和的结果不同 下面的查询为我提供了正确的#如果我手动对已售出字段求和: SELECT CustCode, FiscalYear, Sold FROM DBNAME.dbo.SALESDETAIL WHERE (FiscalYear = YEAR({ fn NOW() })) and CustCode = '248' GROUP BY CustCode, FiscalYear, 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(sell)。感谢你的指点
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';
基本上,您可以去掉多个已售出的值
尝试求和:
SELECT CustCode, FiscalYear, Sold
FROM DBNAME.dbo.SALESDETAIL
WHERE (FiscalYear = YEAR({ fn NOW() }))
AND CustCode = '248';
并与SUM(selled)
结果进行比较。按CustCode
、FiscalYear
和selled
列出的第一个查询组。即,对于这些字段的唯一组合,它返回一行。这意味着,如果同一CustCode
和FiscalYear
的多个条目具有相同的salled
,则只返回其中一行,并丢失重复项。因此,您的手动求和缺少值,而第二个查询不会缺少这些值 第一个查询消除重复的已售出的值。如果有两行具有相同的CustCode
、FiscalYear
、sall
,则第一个查询将只返回一行,而第二个查询将对值求和