Nur damit wir alle auf dem gleichen Stand sind
SQL-Code:
select 1,12/100*0.5
union
select 2,0.5/100*12
union
select 3,0.1*(12/100*0.5)
union
select 4,0.1*(0.5/100*12)
union
select 5,0.1*12/100*0.5
union
select 6,0.1*0.5/100*12
ergibt auf dem MS
SQL 2017 ausgeführt
Code:
1 - 0
2 - 0.06
3 - 0
4 - 0.006
5 - 0.006
6 - 0.006
Beispiel auf SQLfiddle
Warum also jetzt der Unterschied zwischen Zeile 3 und Zeile 5?
Ganz einfach:
Es wird in Zeile 3 erst der Wert in den Klammern berechnet, und der ergibt (wie man in Zeile 1 sehen kann) eben 0 und diese 0 mit 0.1 multipliziert ergibt weiterhin 0.
Das ist das ganze Geheimnis
PS
Der wirkliche Problemauslöser ist die Division von zwei Ganzzahlen
12/100. Es würde reichen eine davon als Fließkommazahl zu deklarieren. Also
12/100.0 oder
12.0/100.