2012-11-27 3 views
0
SELECT 
Counting = ISNULL(COUNT(A.Numbers), 0), 
B.Date AS DateX 
From Schema1.Table A INNER JOIN Schema2.Table B 
ON A.xyz=B.xyz 
Where B.Date = GetDate() 
Group by B.Date 

간혹 B.Date에 오늘 날짜가 표시되지 않습니다. 나는 여전히 결과를 Counting = 0 and DateX = Todays date과 함께 출력하고 싶습니다.T-SQL 코드가 원하는 출력을 제공하지 않습니다.

어떻게하면됩니까?

그래서 2012-11-24 = 32012-11-26 = 1에 대한 계산하지만 B.Date- 2012-11-25 내가 Counting = 0 B.Date = 2012-11-25

을 보여주고 싶은 설정 아무런 출력도 없을 것이다 인기 수요

A.Numbers = 123;456;789;012,...etc 
B.Date = 2012-11-24, 2012-11-24,-212-11-24,2012-11-26 

에 의해

편집을 주셔서 감사합니다

+0

현재 쿼리는'B.Date' = 현재 밀리 초가되는 행을 찾습니다. 이는 현재 일어나지 않을 것입니다. DATE, DATE, DATEADD와 같이 CONVERT (DATE, B.DATE) = CONVERT (DATE, GETDATE()) 또는 WHERE B.DATE>를 CONVERT (DATE, GETDATE())로 검색하면 안됩니다. DAY, 1, CONVERT (DATE, GETDATE())'? –

+0

YYYY-MM-DD를 얻기 위해 변환을 넣었습니다 ... 이것은 단순한 버전이었습니다 .. – 007

+0

스트립 변환에 대한 모든 유형의 문자열 변환이 진행 중입니다. where 절을 sargable로 만들려면 내 의견에 나열된 방법 중 하나를 사용해야합니다. http://www.sqlperformance.com/2012/09/t-sql-queries/what-is-the를 참조하십시오. - 가장 효율적인 방법 - 시간에서 시간을 정하는 방법과 http://www.sqlperformance.com/2012/10/t-sql-queries/trim-time –

답변

3

where 절을 제거하고 변경하십시오. r select to

Counting = (Case when B.Date = GETDATE() then ISNULL(COUNT(A.Numbers),0) else 0 end) 
+0

유효한 날짜를 사용할 때 데이터가 있음), 두 번째 행을 가져오고 첫 번째 행은 0이고 두 번째 행은 유효한 개수 (#> 0)를가집니다 ... 날짜와 개수가 "유효"일 때 어떻게 0을 제거합니까? – 007

+0

@ user1569220 샘플을 보여주세요 데이터 및 원하는 결과를 확인할 수 없습니다. 우리는 그것이 어디에서 왔는지 알 수 없는지 찾고 있습니다. –

+0

원래 게시글을 업데이트했습니다. – 007

관련 문제