Tvärtom menar du att positiva också kan bli negativt eller du vill alltid ha ett positivt svar?
ABS() retunera alltid ett positivt:
-3 = 3
3 = 3
osv
3 svar · 523 visningar · startad av KrpSvedberg
Hello!
Jag har en liten nöt att knäcka;
Jag använder mig av sql-server 2000 och min ungefärliga tabell ser ut så här:
Kolumn: ID
Kolumn: Value
Jag vill nu hämta tex 3 värden och summera dom, minus 2 summerade värden, delat på 2 summerade värden, gånger 100;
((X-Y) / Z) * 100
SELECT ((
(SELECT ISNULL(value), 0) WHERE id = x OR id = y) -
(SELECT ISNULL(value), 0) WHERE id = x AND id = y)) /
(SELECT ISNULL(value), 0) WHERE id = x)) * 100
Resultatet från första frågan (SELECT ISNULL(value), 0) WHERE id = x OR id = y), som är en siffra, kan vara ett negativt tal. Om så är fallet vill jag "vända" på talet, från negativt till positivt. Är detta genomförbart? Min första tanke var en if-sats som kollar om resultat < 0 och i så fall fixa det. Finns det något bättre sätt? Motsvarande ISNULL fast typ ISNEGATIVE? :)
Tack på förhand!
Tvärtom menar du att positiva också kan bli negativt eller du vill alltid ha ett positivt svar?
ABS() retunera alltid ett positivt:
-3 = 3
3 = 3
osv
abs är nog funkish, som voigt skriver - http://msdn.microsoft.com/en-us/library/ms189800(SQL.90).aspx
Super-duper! Precis vad jag söker. Tror inte det kommer kunna vara tvärtom. Om det kan det så tar vi det när det väl dyker upp ;) Thx Voigt, kungen av SQL :) Hoppas allt går bra nere i Skåne för dig!