我試圖做乘法兩列SUM()在SQL SELECT中的所有行,但我不能得到正確的值。我認爲這是由於列中的負值。乘法和SUM()MS SQL
所以是它是負值在Antalpallar這樣-1200 * -2應該是-2400,但我不認爲它這樣做,還是?它是進出倉庫的東西。
總之,添加這些togheter的最終值應爲14320,但我得到一個20 000的東西,沒有ABS()(或)一筆5000上的東西。
任何人都知道該怎麼寫SUM(e.Antalperpall * ABS(e.Antalpallar))來得到我想要的價值呢?顯然有一些我錯過了。
SELECT a.Artikelnummer
,a.Artikelnamn
,a.Antalperpall
,COUNT(*) AS AntalArtiklar
,SUM(e.Antalpallar) AS TotalPall
,SUM(e.Antalperpall * ABS(e.Antalpallar)) 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
-1200 * -2?不,這絕對不應該是-2400,它應該是+2400,乘以兩個負數會給你一個正數。你能澄清你在這裏做什麼嗎? –
問題是,如果第二列表示您有多少東西,那麼這意味着在這裏有一個負數?你不僅沒有儲存這些物品,你欠他們兩個的供應商? –
唯一合理的辦法可以得到的14320的總和僅是通過計數的那些與一個正數,因此添加條件'AND(e.Antalperpall> 0)'或'AND(e.Antalpallar> 0)',或兩者,會得到你想要的號碼。 –