MoppanMedlem sedan okt. 200258 inlägg
Hallå!
Hur kan jag få ett decimaltal som resultat av en division som jag gör i en Stored Procedure? Som jag förstår så blir resultatet en integer.
Såhär står det i hjälpen:
"If an integer dividend is divided by an integer divisor, the result is an integer that has any fractional part of the result truncated".
Hur gör jag för att få en decimal?
IF @Hours > 0
BEGIN
SET @Total = @Hours* 100/@Hours2
END
//Mia
@ndersMedlem sedan juni 200026 914 inlägg
Prova att deklarera variablerna som Float istället.
Mvh,
MoppanMedlem sedan okt. 200258 inlägg
Det är / som returnerar en integer. Jag undrar om det finns någon annan "divisions operator" att använda i SQL?
MoppanMedlem sedan okt. 200258 inlägg
Hjälper såvida inte med Float
LarsGMedlem sedan dec. 200012 465 inlägg
declare @total decimal(10,2)
if @hours > 0
SET @Total = cast(@Hours as dec(10,2))* 100.0/cast(@Hours2 as dec(10,2))
MoppanMedlem sedan okt. 200258 inlägg
SET @Total = cast(@Hours as dec(10,2))* 100.0/cast(@Hours2 as dec(10,2)) fungerar ej!
85/174 = 48% Vill ha 48.9%
LarsGMedlem sedan dec. 200012 465 inlägg
Sträänge.
Det är de ingående datatyperna som avgör vilken datatyp det blir vid division.
declare @total decimal(10,2)
if @hours > 0
SET @Total = round(cast(@Hours*100.0 as dec(10,2))/cast(@Hours2 as dec(10,2)),1
Så då?