Ich versuche, zwei Spalten und SUM() alle Zeilen in einem SQL SELECT zu multiplizieren, aber ich kann nicht den richtigen Wert erhalten. Ich denke, es liegt an den negativen Werten in den Spalten.multiplizieren und SUM() MS SQL
So waren es negativer Wert in Antalpallar wie dies -1200 * -2 -2400 sein soll, aber ich glaube nicht, dass das tut, oder? Es ist ein und aus einem Lagerhaus.
Jedenfalls sollte der Endwert des Hinzufügens dieser Togheter 14320 sein, aber ich bekomme einen auf 20 000 etwas und ohne ABS() (oder mit) eine Summe auf 5000 etwas.
Wer weiß, wie man diese SUMME schreibt (e.Antalperpall * ABS (e.Antalpallar)), um den Wert zu erhalten, den ich will? Offensichtlich gibt es etwas, das ich vermisst habe.
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? Nein, das sollte definitiv nicht -2400 sein, es sollte +2400 sein, das Multiplizieren von zwei negativen Zahlen gibt dir eine positive Zahl. Kannst du erklären, was du hier machst? –
Die Frage ist, ob die zweite Spalte angibt, wie viele von etwas Sie haben, was bedeutet es sogar, hier eine negative Menge zu haben? Haben Sie diese Gegenstände nicht nur im Lager, Sie schulden dem Lieferanten zwei? –
Der einzige vernünftige Weg, eine Summe von 14320 zu bekommen, besteht darin, nur diejenigen mit einer positiven Zahl zu zählen, also die Bedingung 'AND (e.Antalperpall> 0)' oder 'AND (e.Antalpallar> 0)' oder beides hinzuzufügen , erhalten Sie die gewünschte Nummer. –