[SQL] 빈 반환 카운트 대신 0
SQL빈 반환 카운트 대신 0
좋은 하루 모두. 여기 내 코드는 다음과 같습니다
SELECT
'Expired Item -'+ DateName(mm,DATEADD(MM,4,AE.fld_LOAN)) as [Month]
,COUNT(PIT.fld_ID)'COUNT'
,SUM (PIT.fld_GRAM)'GRAMS'
,SUM (PH.fld_AMNT)'PRINCIPAL'
FROM #AllExpired AE
INNER JOIN Transactions.tbl_ITEM PIT
ON AE.fld_MAINID=PIT.fld_MAINID
INNER JOIN Transactions.tbl_HISTO PH
ON AE.fld_MAINID =PH.fld_MAINID
GROUP BY DATENAME(MM,(DATEADD(MM,4,AE.fld_LOAN)))
내가 직면하고있어 문제는 검색 어떠한 결과 값이없는 경우는 더 값이없는 경우 내 카운트 함수가 0을 반환하지 않습니다, Sum 함수는 NULL을 반환하지 않습니다이다. 대신, 그냥 빈을 출력합니다. 왜 그렇게 내가 그것을 어떻게 해결할 수있다?
여기서 샘플 출력의 스크린 샷이다.
물론이 내가 원하는 것이 아니다. I 출력 제로와 널 (null)로합니다. 내가 잘못 알고하지 않습니다, 제발 도와주세요. 감사합니다.
해결법
-
==============================
1.당신은 레코드가 소스에 존재하지 않는 경우, GROUP BY 절을 사용하는 경우 모든 레코드를 출력 할 기대할 수 없다.
당신은 레코드가 소스에 존재하지 않는 경우, GROUP BY 절을 사용하는 경우 모든 레코드를 출력 할 기대할 수 없다.
당신은 SUM 및 COUNT 함수에서 0의 출력을 원하는 경우에, 당신은 GROUP BY를 사용하지 말아야합니다.
그 이유는 더 기록이없는 경우, GROUP BY 절은에 의해 그룹에 아무것도 없다는 것입니다, 그리고 당신에게 출력을 제공 할 수 없습니다.
예를 들면 :
SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable
값을 '0'으로 함께 하나 개의 레코드를 반환합니다 :
SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable GROUP BY [Dummy]
더 레코드를 반환하지 않습니다.
-
==============================
2.난 당신이 tbl_PawnItem에 해당하는 레코드가없는 경우에도 행이 반환되도록하기 위해 OUTER에 INNER에서 조인 변경할 필요가 상상 -
난 당신이 tbl_PawnItem에 해당하는 레코드가없는 경우에도 행이 반환되도록하기 위해 OUTER에 INNER에서 조인 변경할 필요가 상상 -
SELECT 'Expired Item -'+ DateName(mm,DATEADD(MM,4,AE.fld_LoanDate)) as [Month] ,COUNT(PIT.fld_PawnItemID)'COUNT' ,SUM (PIT.fld_KaratGram)'GRAMS' ,SUM (PH.fld_PrincipalAmt)'PRINCIPAL' FROM #AllExpired AE LEFT JOIN Transactions.tbl_PawnItem PIT ON AE.fld_PawnMainID=PIT.fld_PawnMainID LEFT JOIN Transactions.tbl_PawnHisto PH ON AE.fld_PawnMainID=PH.fld_PawnMainID GROUP BY DATENAME(MM,(DATEADD(MM,4,AE.fld_LoanDate)))
-
==============================
3.아마도 #AllExpired이 비어, 또는 중 하나가 결과를 반환하지 않습니다 조인?
아마도 #AllExpired이 비어, 또는 중 하나가 결과를 반환하지 않습니다 조인?
기억 내부는 #AllExpired이 (가) 반환 아무것도에 가입하지 비어 그래서 때문에, 반환하기 위해 양쪽에 필요 결과를 결합한다.
OUTER로 변경 가입 할 수 있습니다.
from https://stackoverflow.com/questions/19221630/count-returning-blank-instead-of-0 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 자동 증가 필드 : TOP 1 ID ORDER BY ID DESC 대 MAX (ID) (0) | 2020.07.10 |
---|---|
[SQL] 는 SQL CE를위한 프로파일 (0) | 2020.07.10 |
[SQL] SQL Server의 테이블 TABLENAME을 만들보기 (0) | 2020.07.10 |
[SQL] ExecuteScalar는 (); SCOPE_IDENTITY ()로 생성 "System.InvalidCastException : 지정한 캐스트가 잘못되었습니다"[중복] (0) | 2020.07.10 |
[SQL] 검사 시간은 두 번 (시간 데이터 형식) 사이 인 경우 (0) | 2020.07.10 |