我需要从SQL列中获取总数,但它不工作,任何人都可以看到我做错了什么。选择SUM()SQL
SELECT a.Artikelnummer
,a.Artikelnamn
,a.Antalperpall
,COUNT(*) AS AntalArtiklar
,SUM(e.Antalpallar) AS TotalPall
,SUM(e.Antalperpall) AS TotalStyck
FROM Artikel AS a
INNER JOIN Evig AS e ON a.ArtikelnummerID = e.ArtikelnummerID
WHERE (e.Datum <= '{0}')
AND (a.Kundkund = '{1}')
AND (a.Artikelnamn = '{2}')
GROUP BY a.Artikelnummer
,a.Artikelnamn
,a.Antalperpall
SUM(e.Antalperpall)AS TotalStyck:这是谁返回一个奇怪的值。我想要做的是取每行的整数值并从中得到总数。
好吧,我去了地下室,并访问了服务器,我发现这个问题。我需要像这样SUM(e.Antalperpall * ABS(e.Antalpallar))与Antalpallar相乘。但它仍然不起作用,我认为这是负面价值的原因。
所以它是这样的Antalpallar是负面的价值-1200 * -2应该是-2400,但我不认为它这样做,还是?它是进出仓库的东西。
无论如何,增加那些togheter的最终值应该是14320,但我得到一个20 000的东西,没有ABS()(或与)5000的东西总和。
任何人都知道如何写这个SUM(e.Antalperpall * ABS(e.Antalpallar))来获得我想要的值?
Antalpallar和Antalperpall的数据类型是什么? – apomene
这不工作意味着你得到什么?你能更好地解释什么是“奇怪的”价值吗?尝试将字段强制转换为int – MiloBellano
您能告诉我们一些示例数据,从样本数据总结中返回什么以及您期望的是什么,这样我们可以计算出 – MarkD