【发布时间】:2014-04-10 16:30:44
【问题描述】:
我有两个字段将数据保存为 varchar
field1= 10,000.00 和 field2= 5,000.00
我现在需要添加这两个字段来查找 sum 。但是当我添加为 Field1+Field2 时
结果是 10,000.005,000.oo
我尝试使用 CAST(Field1 as decimal(12,2)) 但它会抛出一个错误,它无法将 varchar 转换为数字。
帮帮我!
SELECT [1] AS ContractPriceExcluded, [2] AS Anticipated, [3] AS Approved, [4] AS claims, [5] AS ProvisionalSums, [6] AS CommitmentsToDate, [7] AS AnticipatedFCost,
[8] AS VarianceToContract, [9] AS CertifiedPayments,[10] AS ContractPriceIncluded , [11] AS ProvisionalSumsNotactivated ,description, status, ReferenceNo
FROM (SELECT ISNULL([Workflow_CustomFormfields].[fieldnumber], '') AS fieldnumber,
CAST( REPLACE([Workflow_CustomFormFields].fieldvalue,',','')as Decimal(12,2)) AS fieldvalue, isnull(workflow_customforms.subject, '') AS description,
isnull(workflow_customforms.categoryvalue, '') AS status, isnull(workflow_customforms.reference, '') AS ReferenceNo
FROM [dbo].[Workflow_CustomFormfields] INNER JOIN
dbo.Workflow_CustomForms ON [dbo].[Workflow_CustomForms].[Id] = dbo.Workflow_CustomFormfields.customformId
WHERE dbo.Workflow_CustomForms.ProjectId = 1 AND dbo.Workflow_CustomForms.CustomformtypeId = 75) PS PIVOT (max(fieldvalue) FOR fieldnumber IN ([1], [2],
[3], [4], [5], [6], [7], [8], [9],[10],[11])) AS pivot_fieldvalue
【问题讨论】:
-
你为什么不首先将它存储为十进制?
标签: sql sql-server sql-server-2008