SQL Server 2008을 사용하여 일부 데이터를 합산합니다. 데이터 유형이 money이고 null을 허용하지 않도록 설정되었습니다. 요약 할 때 결과 데이터는 돈이지만 null을 허용합니다. 이 문제는 C#에서 코드를 사용할 때 null이 허용되는 돈이 데이터를 허용하는 다른 문제 중에 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
이는 음속라는 제 3의 도구로 끌려 가고있다. 그건 내가 원하지 않는 데이터를 nullable로 인식한다. 데이터와 상호 작용하는 코드가 생성되었으므로 변경할 수는 없습니다. 데이터를 사용할 수있는 모든 곳에서 데이터를 변경할 수 있지만 원하는 것이 아니거나 좋은 해결책은 아닙니다.
하는 방법 null 이외의 숫자의 합이 그 어느 null이 될 수 있습니까? – zmbq
관련 코드 및 예제가 포함되어 있습니까? – HaveNoDisplayName
누락 된 데이터가있는 쿼리의 모든 왼쪽 조인? 그건 내가 그 열에 들어가는 null을 볼 수있는 유일한 방법입니다. – Jeremy