• Great question.

    I must say, .NET Framework has one up on SQL here. Considering the following VB.NET code.

    System.Console.WriteLine(1234567890.123456789D * 0.1D * 0.1D)

    returns 12345678.90123456789 as expected which is simple.

    DECLARE @value1 DECIMAL(20,10), @value2 DECIMAL(2,1) , @value3 DECIMAL(2,1)

    Will return 12345678.901234567890 as expected

    But if you make a mistake and just use the same data type for all... DECIMAL(20,10) then it breaks.

    12345678.901235

    I guess we now know why we don't have a Product aggregate function in SQL.