2017-10-30 8 views
0

내 좋은 참고가 How to replace blank (null) values with 0 for all records?SQL IIF ISNULL 및 업데이트 설정 = 0

목표이다 : 나는 빈 쿼리의 출력을 가지고있다. Image0 대신 0을 출력하고 싶습니다.

문제 : : IIF Isnull을 시도하면 표시되지 않는 매개 변수 값을 입력하라는 메시지 상자가 나타납니다. Image3

어떤 조언 관한 : 나는 그것은 나에게 The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect. 오류 메시지를 제공 UPDATE

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime; 
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold 
UPDATE [dbo_SO_SalesHistory.DollarsSold] SET [SumOfDollarsSold] = 0 
FROM dbo_SO_SalesHistory 
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M")) AND [SumOfDollarsSold] IS NULL; 

을 시도 그리고 Image2

: 여기

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime; 
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold, IIF(ISNULL([SumOfDollarsSold]), 0, [SumOfDollarsSold]) 
FROM dbo_SO_SalesHistory 
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M")); 

Image1은 내 쿼리가 SQL을 실행 한 후 모습입니다 내가 사용했던 방법 중 어느 것이 든 매우 높이 평가 될 것이다. 고맙습니다!

답변

0
PARAMETERS [BeginDate] DateTime, [EndDate] DateTime; 
SELECT IIF(ISNULL(Sum(dbo_SO_SalesHistory.DollarsSold)),0,Sum(dbo_SO_SalesHistory.DollarsSold)) AS SumOfDollarsSold 
FROM dbo_SO_SalesHistory 
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M")) 

실행 시간 쿼리가 SumOfDollarsSold 열을 알지 못합니다. 따라서이 값을 subquery으로 만들고 값을 테스트하거나 IIf 문에서 실제 집계 함수를 사용할 수 있습니다.

아마도 디스플레이 목적으로 더 좋은 것은 FORMAT() 함수 일 것이지만 숫자는 실제로 문자열 일 것임을 기억하십시오. 나는 너무 잘 액세스의 구현을 기억하지 않습니다하지만 뭔가처럼 될 수 있습니다

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime; 
SELECT FORMAT(Sum(dbo_SO_SalesHistory.DollarsSold)),0) AS SumOfDollarsSold 
FROM dbo_SO_SalesHistory 
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M")) 

https://support.office.com/en-us/article/Format-Property-Number-and-Currency-Data-Types-ca77795e-b40d-4abb-b42f-daa0bb709620?ui=en-US&rs=en-US&ad=US

+0

감사합니다! 그것은 많은 의미가 있습니다! 54 초 안에 답을 수락합니다. –