Früher zeigte die Ergebnismenge 300,00, wenn es wie folgt war, wo die Zugabe aus zwei verschiedenen Tabellenkolumnen stattfindet.Dezimal Division Präzision
Cast((SELECT Cost FROM Table1 WHERE Id = CD.Id) +
(SELECT RecuritmentCost FROM Table2 WHERE Id = CD.Id)
AS VARCHAR(10))
Aber ich habe eine gewisse Anforderung bekam eine Divisionsoperation in einem Fall so im Fall Aussage ich verwende, unter dem tun wird, was in 300,0000000000000
cast((((
SELECT Cost
FROM Table1
WHERE Id = CD.Id
) + (
SELECT RecuritmentCost
FROM Table2
WHERE Id = CD.Id
))/(Select Count(*) from tblEmployee where Id = CD.Id and emptype=2)) AS VARCHAR(18))
hier habe ich verwendet varchar (18) weil es Fehler geworfen hat, wenn ich varchar (10) verwende
Fehler war "arithmetischer Überlauffehler, der numerisch zum Datentyp varchar umwandelt".
von varchar (18) verwendet wurde, wurde dieser Fehler entfernt, aber zur Folge beginnen 300,0000000000000
Die colums zeigt, auf der Operationen stattfinden, sind vom Typ
Cost(decimal(18,2),null)
RecuritmentCost(decimal(18,2), null)
Ich glaube, ich nicht die Dinge bin Umwandlung richtig, aber eigentlich brauche ich Ergebnis in einer Zeichenfolge, so verwende ich Cast als Varchar(18)
. Können wir dieses Problem lösen, wenn irgendeine Operation unter diese zwei Spalten stattfindet, sollte es Ergebnis in zwei Dezimalstellen und das auch im Zeichenfolgenformat zurückgeben.