I am doing SQL Server query calculations and the division always gives me zero.
SUM(sl.LINES_ORDERED)
, SUM(sl.LINES_CONFIRMED)
, SUM(sl.LINES_CONFIRMED) /
The two problems are that you
SUM
returns an integer), andThis is how you could fix it (note that LINES_ORDERED
and LINES_CONFIRMED
are swapped):
SUM(sl.LINES_ORDERED)
, SUM(sl.LINES_CONFIRMED)
, (1.0*SUM(sl.LINES_ORDERED)) / SUM(sl.LINES_CONFIRMED) AS 'Percent'
try
SUM(sl.LINES_CONFIRMED) * 1.0 / SUM(sl.LINES_ORDERED)
An integer devision can only return full numbers and not floating point numbers. You can force a floating point division like in the example above.
Try it like this:
SUM(sl.LINES_ORDERED)
, SUM(sl.LINES_CONFIRMED)
, SUM(sl.LINES_CONFIRMED)*1.0 / SUM(sl.LINES_ORDERED)
It will be because you're divinding two integers.
Convert the two values in the division to decimals first:
, SUM(convert(decimal(12,2),sl.LINES_CONFIRMED))
/ SUM(convert(decimal(12,2),sl.LINES_ORDERED)) AS 'Percent'