Axi Postad 8 Maj, 2014 Share Postad 8 Maj, 2014 Hej. När jag kör min fråga får jag felmeddelande Warning: Null value is eliminated by an aggregate or other SET operation. Jag förstår vad felmeddelandet innebär, men jag förstår inte varför jag får det. Skälet att jag drar in detta i en Temptabell är för att detta är en del av en större sats, tar man bort Temptabell-biten så fungerar frågan utmärkt. SELECT RT.Itemid ,SUM(CASE WHEN RT.Reftype = 1 AND RT.QTY >0 THEN RT.QTY END) AS [Behållning] ,SUM(CASE WHEN RT.Reftype IN ('8','9','31','33') AND RT.QTY >0 THEN RT.QTY END) AS [Inkommande] ,SUM(CASE WHEN RT.Reftype IN ('32','10','12') AND RT.QTY <0 THEN RT.QTY END) AS [Behov] ,SUM(CASE WHEN RT.Reftype = 14 AND RT.QTY >0 THEN RT.QTY END AS [Säkerhetslager] ,RT.CovInventDimId INTO #NETTOBEHOV FROM ReqTrans RT WHERE RT.DataAreaID = 'DUMMY' GROUP BY RT.Itemid,RT.CovInventDimId SELECT * FROM #NETTOBEHOV DROP TABLE #NETTOBEHOV Länk till kommentar Dela på andra webbplatser More sharing options...
jarlh Postad 9 Maj, 2014 Share Postad 9 Maj, 2014 När du gör SUM på en massa värden där även NULL ingår får du varningsmeddelandet. Ta t.ex raden SUM(CASE WHEN RT.Reftype = 1 AND RT.QTY >0 THEN RT.QTY END) För de rader där villkoret är uppfyllt får du ju RT.QTY från CASE:n, men för övriga rader ger CASE:n NULL. För att slippa varningsmeddelandet kan du testa med att justera CASE:arna med ELSE 0 som default-värde, typ: SUM(CASE WHEN RT.Reftype = 1 AND RT.QTY >0 THEN RT.QTY ELSE 0 END) Länk till kommentar Dela på andra webbplatser More sharing options...
Axi Postad 9 Maj, 2014 Trådskapare Share Postad 9 Maj, 2014 Intressant. Jag hade provat tidigare med: ISNULL(SUM(CASE WHEN RT.Reftype = 1 AND RT.QTY >0 THEN RT.QTY END),0) men det hjälpte inte. Ditt förslag gör det jag tänkte göra med ISNULL, fast på rätt ställe. Jag vet fortfarande inte varför min variant inte funkade i en temptabell, men att det fungerade utan en temptabell. Din lösning fungerar dock i båda, så jag tackar så hemst mycket för hjälpen. Jag får dyka ned i min SQL bok för att se varför. ;-) Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.