我正在使用SQL Server 2008對一些數據進行總結。數據類型爲money,它被設置爲不允許空值。當我總結時,由此產生的數據是貨幣,但允許空值。這是一個問題,當我在C#中使用代碼作爲貨幣時,不允許空值不等於允許空值的貨幣,以及允許數據爲null的其他問題。我能做些什麼來解決這個混亂?SQL Server總和更改數據類型
我的SQL是:
SELECT
dbo.Subcontracts.SubcontractID, dbo.Subcontracts.AccountNumber,
dbo.SubcontractAmounts.ObjectCode, dbo.Subcontracts.AppendId,
dbo.Subcontracts.BeginDate, dbo.Subcontracts.EndDate,
dbo.Subcontracts.RecipientGrantorId, dbo.Subcontracts.CheckA133,
dbo.Subcontracts.CheckDebarment, dbo.Subcontracts.CostshareRequired,
dbo.Subcontracts.CostshareAmountRequired, dbo.Subcontracts.CreatedOn,
dbo.Subcontracts.CreatedBy, dbo.Subcontracts.ModifiedOn,
dbo.Subcontracts.ModifiedBy, dbo.Subcontracts.IsDeleted, dbo.Subcontracts.FARate,
dbo.Subcontracts.SubContractAgreementTypeId, dbo.Subcontracts.ContractRiskLevelId,
CAST(SUM(dbo.SubcontractAmounts.SubAmount) AS money) AS TotalSubAmount,
SUM(dbo.SubcontractPayments.PaymentAmount) AS TotalPaymentAmount,
SUM(dbo.SubcontractPayments.AdvanceAmount) AS TotalAdvanceAmount,
SUM(dbo.SubcontractPayments.CostshareAmount) AS TotalCostshareAmount,
SUM(dbo.SubcontractAmounts.SubAmount - dbo.SubcontractPayments.PaymentAmount) AS UnpaidBalance
FROM
dbo.Subcontracts
INNER JOIN
dbo.SubcontractAmounts ON dbo.Subcontracts.SubcontractID = dbo.SubcontractAmounts.SubcontractID
LEFT OUTER JOIN
dbo.SubcontractPayments ON dbo.SubcontractAmounts.SubcontractAmountID = dbo.SubcontractPayments.SubcontractAmountID
GROUP BY
dbo.Subcontracts.SubcontractID, dbo.Subcontracts.AccountNumber,
dbo.Subcontracts.AppendId, dbo.Subcontracts.BeginDate, dbo.Subcontracts.EndDate,
dbo.Subcontracts.RecipientGrantorId, dbo.Subcontracts.CostshareAmountRequired,
dbo.Subcontracts.CreatedOn, dbo.Subcontracts.CreatedBy,
dbo.Subcontracts.ModifiedOn, dbo.Subcontracts.ModifiedBy, dbo.Subcontracts.FARate,
dbo.Subcontracts.SubContractAgreementTypeId, dbo.Subcontracts.ContractRiskLevelId,
dbo.Subcontracts.IsDeleted, dbo.Subcontracts.CheckA133, dbo.Subcontracts.CheckDebarment,
dbo.Subcontracts.CostshareRequired, dbo.SubcontractAmounts.ObjectCode
這是被拉進稱爲亞音速第三方工具。這意味着數據可以爲空,我不想要。由於生成與數據交互的代碼,因此我不能只是改變它。我可以在任何地方將數據更改爲不可空,但這不是一個理想的或好的解決方案。
如何非空數量的總和永遠爲空? – zmbq 2014-12-03 20:07:00
包括相關的代碼和例子? – HaveNoDisplayName 2014-12-03 20:07:06
任何左側在查詢中加入缺少的數據?這是我可以看到空列進入該列的唯一方法 – Jeremy 2014-12-03 20:08:53